aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarmina16 <mistresssilvara@hotmail.com>2021-03-06 22:32:26 +0700
committerFelix Queißner <felix@ib-queissner.de>2021-03-06 16:59:32 +0100
commit4e89d5d8053697cb882e659a88156eacec15dcfe (patch)
tree0228bf64cc1d7fe1baf019769ffc30d4c1c3483e
parentcdc3888b5847ee7971fef7fe296f1b483afc000b (diff)
downloadkristall-4e89d5d8053697cb882e659a88156eacec15dcfe.tar.gz
Implement interface translation
-rw-r--r--src/browsertab.cpp100
-rw-r--r--src/dialogs/certificateiodialog.cpp4
-rw-r--r--src/dialogs/certificatemanagementdialog.cpp38
-rw-r--r--src/dialogs/settingsdialog.cpp44
-rw-r--r--src/ioutil.cpp6
-rw-r--r--src/kristall.pro5
-rw-r--r--src/main.cpp13
-rw-r--r--src/mainwindow.cpp40
-rw-r--r--src/protocols/abouthandler.cpp2
-rw-r--r--src/trustedhostcollection.cpp10
-rw-r--r--src/widgets/favouritepopup.cpp8
-rw-r--r--translations/kristall_en_US.ts2040
-rw-r--r--translations/kristall_ru.ts2079
13 files changed, 4260 insertions, 129 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp
index 0db9797..cb508be 100644
--- a/src/browsertab.cpp
+++ b/src/browsertab.cpp
@@ -174,13 +174,13 @@ void BrowserTab::navigateTo(const QUrl &url, PushToHistory mode, RequestFlags fl
{
if (kristall::protocols.isSchemeSupported(url.scheme()) != ProtocolSetup::Enabled)
{
- QMessageBox::warning(this, "Kristall", "URI scheme not supported or disabled: " + url.scheme());
+ QMessageBox::warning(this, tr("Kristall"), tr("URI scheme not supported or disabled: ") + url.scheme());
return;
}
if ((this->current_handler != nullptr) and not this->current_handler->cancelRequest())
{
- QMessageBox::warning(this, "Kristall", "Failed to cancel running request!");
+ QMessageBox::warning(this, tr("Kristall"), tr("Failed to cancel running request!"));
return;
}
@@ -288,13 +288,13 @@ void BrowserTab::openSourceView()
monospace_font.setStyleHint(QFont::Monospace);
auto dialog = std::make_unique<QDialog>(this);
- dialog->setWindowTitle(QString("Source of %0").arg(this->current_location.toString()));
+ dialog->setWindowTitle(QString(tr("Source of %0")).arg(this->current_location.toString()));
auto layout = new QVBoxLayout(dialog.get());
dialog->setLayout(layout);
auto hint = new QLabel(dialog.get());
- hint->setText(QString("Mime type: %0").arg(current_mime.toString()));
+ hint->setText(QString(tr("Mime type: %0")).arg(current_mime.toString()));
layout->addWidget(hint);
auto text = new QPlainTextEdit(dialog.get());
@@ -343,10 +343,10 @@ void BrowserTab::on_url_bar_returnPressed()
!kristall::options.search_engine.contains("%1"))
{
QMessageBox::warning(this,
- "Kristall",
- "No search engine is configured.\n"
+ tr("Kristall"),
+ tr("No search engine is configured.\n"
"Please configure one in the settings to allow searching via the URL bar.\n\n"
- "See the Help menu for additional information."
+ "See the Help menu for additional information.")
);
return;
}
@@ -436,7 +436,7 @@ void BrowserTab::on_networkTimeout()
if(this->current_handler != nullptr) {
this->current_handler->cancelRequest();
}
- on_networkError(ProtocolHandler::Timeout, "The server didn't respond in time.");
+ on_networkError(ProtocolHandler::Timeout, tr("The server didn't respond in time."));
}
void BrowserTab::on_focusSearchbar()
@@ -450,7 +450,7 @@ void BrowserTab::on_certificateRequired(const QString &reason)
if (not trySetClientCertificate(reason))
{
- setErrorMessage(QString("The page requested a authorized client certificate, but none was provided.\r\nOriginal query was: %1").arg(reason));
+ setErrorMessage(QString(tr("The page requested a authorized client certificate, but none was provided.\r\nOriginal query was: %1")).arg(reason));
}
else
{
@@ -557,12 +557,12 @@ void BrowserTab::on_requestComplete(const QByteArray &ref_data, const MimeType &
} else {
auto response = QMessageBox::question(
this,
- "Kristall",
- QString("Failed to convert input charset %1 to UTF-8. Cannot display the file.\r\nDo you want to display unconverted data anyways?").arg(charset)
+ tr("Kristall"),
+ QString(tr("Failed to convert input charset %1 to UTF-8. Cannot display the file.\r\nDo you want to display unconverted data anyways?")).arg(charset)
);
if(response != QMessageBox::Yes) {
- setErrorMessage(QString("Failed to convert input charset %1 to UTF-8.").arg(charset));
+ setErrorMessage(QString(tr("Failed to convert input charset %1 to UTF-8.")).arg(charset));
return;
}
}
@@ -725,7 +725,7 @@ void BrowserTab::renderPage(const QByteArray &data, const MimeType &mime)
}
else
{
- this->graphics_scene.addText(QString("Failed to load picture:\r\n%1").arg(reader.errorString()));
+ this->graphics_scene.addText(QString(tr("Failed to load picture:\r\n%1")).arg(reader.errorString()));
}
this->ui->graphics_browser->setScene(&graphics_scene);
@@ -754,13 +754,13 @@ void BrowserTab::renderPage(const QByteArray &data, const MimeType &mime)
document->setDefaultStyleSheet(doc_style.toStyleSheet());
QString plain_data = QString(
- "Unsupported Media Type!\n"
+ tr("Unsupported Media Type!\n"
"\n"
"Kristall cannot display the requested document\n"
"To view this media, use the File menu to save it to your local drive, then open the saved file in another program that can display the document for you.\n\n"
"Details:\n"
"- MIME type: %1/%2\n"
- "- Size: %3\n"
+ "- Size: %3\n")
).arg(mime.type, mime.subtype, IoUtil::size_human(data.size()));
document->setPlainText(plain_data);
@@ -770,7 +770,7 @@ void BrowserTab::renderPage(const QByteArray &data, const MimeType &mime)
else
{
QString page_data = QString(
- "# Unsupported Media Type!\n"
+ tr("# Unsupported Media Type!\n"
"\n"
"Kristall cannot display the requested document.\n"
"\n"
@@ -780,7 +780,7 @@ void BrowserTab::renderPage(const QByteArray &data, const MimeType &mime)
"Details:\n"
"- MIME type: %1/%2\n"
"- Size: %3\n"
- "```\n"
+ "```\n")
).arg(mime.type, mime.subtype, IoUtil::size_human(data.size()));
document = GeminiRenderer::render(
@@ -874,7 +874,7 @@ void BrowserTab::on_inputRequired(const QString &query, const bool is_sensitive)
{
if (dialog.exec() != QDialog::Accepted)
{
- setErrorMessage(QString("Site requires input:\n%1").arg(query));
+ setErrorMessage(QString(tr("Site requires input:\n%1")).arg(query));
return;
}
@@ -885,7 +885,7 @@ void BrowserTab::on_inputRequired(const QString &query, const bool is_sensitive)
if(len >= 1020) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("Your input message is too long. Your input is %1 bytes, but a maximum of %2 bytes are allowed.\r\nPlease cancel or shorten your input.").arg(len).arg(1020)
);
} else {
@@ -910,7 +910,7 @@ void BrowserTab::on_redirected(QUrl uri, bool is_permanent)
if (redirection_count >= kristall::options.max_redirections)
{
- setErrorMessage(QString("Too many consecutive redirections. The last redirection would have redirected you to:\r\n%1").arg(uri.toString(QUrl::FullyEncoded)));
+ setErrorMessage(QString(tr("Too many consecutive redirections. The last redirection would have redirected you to:\r\n%1")).arg(uri.toString(QUrl::FullyEncoded)));
return;
}
else
@@ -922,34 +922,34 @@ void BrowserTab::on_redirected(QUrl uri, bool is_permanent)
if(kristall::options.redirection_policy == GenericSettings::WarnAlways)
{
question = QString(
- "The location you visited wants to redirect you to another location:\r\n"
+ tr("The location you visited wants to redirect you to another location:\r\n"
"%1\r\n"
- "Do you want to allow the redirection?"
+ "Do you want to allow the redirection?")
).arg(uri.toString(QUrl::FullyEncoded));
}
else if((kristall::options.redirection_policy & (GenericSettings::WarnOnHostChange | GenericSettings::WarnOnSchemeChange)) and is_cross_protocol and is_cross_host)
{
question = QString(
- "The location you visited wants to redirect you to another host and switch the protocol.\r\n"
+ tr("The location you visited wants to redirect you to another host and switch the protocol.\r\n"
"Protocol: %1\r\n"
"New Host: %2\r\n"
- "Do you want to allow the redirection?"
+ "Do you want to allow the redirection?")
).arg(uri.scheme()).arg(uri.host());
}
else if((kristall::options.redirection_policy & GenericSettings::WarnOnSchemeChange) and is_cross_protocol)
{
question = QString(
- "The location you visited wants to switch the protocol.\r\n"
+ tr("The location you visited wants to switch the protocol.\r\n"
"Protocol: %1\r\n"
- "Do you want to allow the redirection?"
+ "Do you want to allow the redirection?")
).arg(uri.scheme());
}
else if((kristall::options.redirection_policy & GenericSettings::WarnOnHostChange) and is_cross_host)
{
question = QString(
- "The location you visited wants to redirect you to another host.\r\n"
+ tr("The location you visited wants to redirect you to another host.\r\n"
"New Host: %1\r\n"
- "Do you want to allow the redirection?"
+ "Do you want to allow the redirection?")
).arg(uri.host());
}
@@ -957,11 +957,11 @@ void BrowserTab::on_redirected(QUrl uri, bool is_permanent)
{
auto answer = QMessageBox::question(
this,
- "Kristall",
+ tr("Kristall"),
question
);
if(answer != QMessageBox::Yes) {
- setErrorMessage(QString("Redirection to %1 cancelled by user").arg(uri.toString()));
+ setErrorMessage(QString(tr("Redirection to %1 cancelled by user")).arg(uri.toString()));
return;
}
}
@@ -975,7 +975,7 @@ void BrowserTab::on_redirected(QUrl uri, bool is_permanent)
}
else
{
- setErrorMessage(QString("Redirection to %1 failed").arg(uri.toString()));
+ setErrorMessage(QString(tr("Redirection to %1 failed")).arg(uri.toString()));
}
}
}
@@ -984,7 +984,7 @@ void BrowserTab::setErrorMessage(const QString &msg)
{
this->is_internal_location = true;
this->on_requestComplete(
- QString("An error happened:\r\n%0").arg(msg).toUtf8(),
+ QString(tr("An error happened:\r\n%0")).arg(msg).toUtf8(),
"text/plain charset=utf-8");
this->updateUI();
@@ -1062,7 +1062,7 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url, bool open_in_new
if(not is_theme_preview and opt == "ignore-tls") {
auto response = QMessageBox::question(
this,
- "Kristall",
+ tr("Kristall"),
tr("This sites certificate could not be verified! This may be a man-in-the-middle attack on the server to send you malicious content (or the server admin made a configuration mistake).\r\nAre you sure you want to continue?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No
@@ -1079,7 +1079,7 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url, bool open_in_new
else if(not is_theme_preview and opt == "add-fingerprint") {
auto answer = QMessageBox::question(
this,
- "Kristall",
+ tr("Kristall"),
tr("Do you really want to add the server certificate to your list of trusted hosts?\r\nHost: %1")
.arg(this->current_location.host()),
QMessageBox::Yes | QMessageBox::No,
@@ -1138,7 +1138,7 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url, bool open_in_new
auto answer = QMessageBox::question(
this,
- "Kristall",
+ tr("Kristall"),
tr("Do you want to add the style %1 to your collection?").arg(name)
);
if(answer != QMessageBox::Yes)
@@ -1169,7 +1169,7 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url, bool open_in_new
QMessageBox::information(
this,
- "Kristall",
+ tr("Kristall"),
tr("The theme %1 was successfully added to your theme collection!").arg(name)
);
}
@@ -1181,7 +1181,7 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url, bool open_in_new
} else {
QMessageBox::critical(
this,
- "Kristall",
+ tr("Kristall"),
tr("Malicious site detected! This site tries to use the Kristall control scheme!\r\nA trustworthy site does not do this!").arg(this->current_location.host())
);
}
@@ -1208,16 +1208,16 @@ void BrowserTab::on_text_browser_anchorClicked(const QUrl &url, bool open_in_new
{
if (not QDesktopServices::openUrl(url))
{
- QMessageBox::warning(this, "Kristall", QString("Failed to start system URL handler for\r\n%1").arg(real_url.toString()));
+ QMessageBox::warning(this, "Kristall", QString(tr("Failed to start system URL handler for\r\n%1")).arg(real_url.toString()));
}
}
else if (support == ProtocolSetup::Disabled)
{
- QMessageBox::warning(this, "Kristall", QString("The requested url uses a scheme that has been disabled in the settings:\r\n%1").arg(real_url.toString()));
+ QMessageBox::warning(this, "Kristall", QString(tr("The requested url uses a scheme that has been disabled in the settings:\r\n%1")).arg(real_url.toString()));
}
else
{
- QMessageBox::warning(this, "Kristall", QString("The requested url cannot be processed by Kristall:\r\n%1").arg(real_url.toString()));
+ QMessageBox::warning(this, "Kristall", QString(tr("The requested url cannot be processed by Kristall:\r\n%1")).arg(real_url.toString()));
}
}
}
@@ -1470,7 +1470,7 @@ void BrowserTab::resetClientCertificate()
{
if (this->current_identity.isValid() and not this->current_identity.is_persistent)
{
- auto respo = QMessageBox::question(this, "Kristall", "You currently have a transient session active!\r\nIf you disable the session, you will not be able to restore it. Continue?");
+ auto respo = QMessageBox::question(this, "Kristall", tr("You currently have a transient session active!\r\nIf you disable the session, you will not be able to restore it. Continue?"));
if (respo != QMessageBox::Yes)
{
this->ui->enable_client_cert_button->setChecked(true);
@@ -1644,7 +1644,7 @@ bool BrowserTab::enableClientCertificate(const CryptoIdentity &ident)
{
if (not ident.isValid())
{
- QMessageBox::warning(this, "Kristall", "Failed to generate temporary crypto-identitiy");
+ QMessageBox::warning(this, "Kristall", tr("Failed to generate temporary crypto-identitiy"));
this->disableClientCertificate();
return false;
}
@@ -1697,26 +1697,26 @@ void BrowserTab::on_text_browser_customContextMenuRequested(const QPoint pos)
if (real_url.isRelative())
real_url = this->current_location.resolved(real_url);
- connect(menu.addAction("Open in new tab"), &QAction::triggered, [this, real_url]() {
+ connect(menu.addAction(tr("Open in new tab")), &QAction::triggered, [this, real_url]() {
mainWindow->addNewTab(false, real_url);
});
// "open in default browser" for HTTP/S links
if (real_url.scheme().startsWith("http", Qt::CaseInsensitive)) {
- connect(menu.addAction("Open with external web browser"), &QAction::triggered, [this, real_url]() {
+ connect(menu.addAction(tr("Open with external web browser")), &QAction::triggered, [this, real_url]() {
if (!QDesktopServices::openUrl(real_url))
{
QMessageBox::warning(this, "Kristall",
- QString("Failed to start system URL handler for\r\n%1").arg(real_url.toString()));
+ QString(tr("Failed to start system URL handler for\r\n%1")).arg(real_url.toString()));
}
});
}
- connect(menu.addAction("Follow link"), &QAction::triggered, [this, real_url]() {
+ connect(menu.addAction(tr("Follow link")), &QAction::triggered, [this, real_url]() {
this->navigateTo(real_url, PushImmediate);
});
- connect(menu.addAction("Copy link"), &QAction::triggered, [real_url]() {
+ connect(menu.addAction(tr("Copy link")), &QAction::triggered, [real_url]() {
kristall::clipboard->setText(real_url.toString(QUrl::FullyEncoded));
});
@@ -1746,18 +1746,18 @@ void BrowserTab::on_text_browser_customContextMenuRequested(const QPoint pos)
menu.addSeparator();
} else {
- menu.addAction("Copy to clipboard", [this]() {
+ menu.addAction(tr("Copy to clipboard"), [this]() {
this->ui->text_browser->betterCopy();
}, QKeySequence("Ctrl+C"));
}
- connect(menu.addAction("Select all"), &QAction::triggered, [this]() {
+ connect(menu.addAction(tr("Select all")), &QAction::triggered, [this]() {
this->ui->text_browser->selectAll();
});
menu.addSeparator();
- QAction * viewsrc = menu.addAction("View document source");
+ QAction * viewsrc = menu.addAction(tr("View document source"));
viewsrc->setShortcut(QKeySequence("Ctrl+U"));
connect(viewsrc, &QAction::triggered, [this]() {
mainWindow->viewPageSource();
diff --git a/src/dialogs/certificateiodialog.cpp b/src/dialogs/certificateiodialog.cpp
index 079d793..75b9775 100644
--- a/src/dialogs/certificateiodialog.cpp
+++ b/src/dialogs/certificateiodialog.cpp
@@ -65,7 +65,7 @@ void CertificateIoDialog::on_select_certificate_file_button_clicked()
{
QFileDialog dialog { this };
- dialog.setNameFilter("Certificate File(*.pem *.der)");
+ dialog.setNameFilter(tr("Certificate File(*.pem *.der)"));
dialog.setAcceptMode((this->current_mode == Export) ? QFileDialog::AcceptSave : QFileDialog::AcceptOpen);
dialog.selectFile(this->ui->certificate_file_name->text());
@@ -81,7 +81,7 @@ void CertificateIoDialog::on_select_key_file_button_clicked()
{
QFileDialog dialog { this };
- dialog.setNameFilter("Certificate File(*.pem *.der)");
+ dialog.setNameFilter(tr("Certificate File(*.pem *.der)"));
dialog.setAcceptMode((this->current_mode == Export) ? QFileDialog::AcceptSave : QFileDialog::AcceptOpen);
dialog.selectFile(this->ui->key_file_name->text());
diff --git a/src/dialogs/certificatemanagementdialog.cpp b/src/dialogs/certificatemanagementdialog.cpp
index 9600378..4734b01 100644
--- a/src/dialogs/certificatemanagementdialog.cpp
+++ b/src/dialogs/certificatemanagementdialog.cpp
@@ -61,7 +61,8 @@ void CertificateManagementDialog::on_certificates_selected(QModelIndex const& in
this->ui->cert_display_name->setText(cert.display_name);
this->ui->cert_common_name->setText(cert.certificate.subjectInfo(QSslCertificate::CommonName).join(", "));
this->ui->cert_expiration_date->setDateTime(cert.certificate.expiryDate());
- this->ui->cert_livetime->setText(QString("%1 days").arg(QDateTime::currentDateTime().daysTo(cert.certificate.expiryDate())));
+ auto days = QDateTime::currentDateTime().daysTo(cert.certificate.expiryDate());
+ this->ui->cert_livetime->setText(QString(tr("%1 day","%1 days",days)).arg(days));
this->ui->cert_fingerprint->setPlainText(toFingerprintString(cert.certificate));
this->ui->cert_notes->setPlainText(cert.user_notes);
@@ -113,29 +114,29 @@ void CertificateManagementDialog::on_delete_cert_button_clicked()
{
auto answer = QMessageBox::question(
this,
- "Kristall",
- "Do you really want to delete this certificate?\r\n\r\nYou will not be able to restore the identity after this!",
+ tr("Kristall"),
+ tr("Do you really want to delete this certificate?\r\n\r\nYou will not be able to restore the identity after this!"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No
);
if(answer != QMessageBox::Yes)
return;
if(not identity_set.destroyIdentity(index)) {
- QMessageBox::warning(this, "Kristall", "Could not destroy identity!");
+ QMessageBox::warning(this, tr("Kristall"), tr("Could not destroy identity!"));
}
}
else if(auto group_name = identity_set.group(index); not group_name.isEmpty()) {
auto answer = QMessageBox::question(
this,
- "Kristall",
- QString("Do you want to delete the group '%1'").arg(group_name)
+ tr("Kristall"),
+ QString(tr("Do you want to delete the group '%1'")).arg(group_name)
);
if(answer != QMessageBox::Yes)
return;
if(not identity_set.deleteGroup(group_name)) {
- QMessageBox::warning(this, "Kristall", "Could not delete group!");
+ QMessageBox::warning(this, tr("Kristall"), tr("Could not delete group!"));
}
}
}
@@ -157,7 +158,7 @@ void CertificateManagementDialog::on_export_cert_button_clicked()
if(not cert_file.open(QFile::WriteOnly)) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The file %1 could not be found!").arg(dialog.certificateFileName())
);
return;
@@ -173,7 +174,7 @@ void CertificateManagementDialog::on_export_cert_button_clicked()
if(not IoUtil::writeAll(cert_file, cert_blob)) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The file %1 could not be created found!").arg(dialog.certificateFileName())
);
return;
@@ -185,7 +186,7 @@ void CertificateManagementDialog::on_export_cert_button_clicked()
if(not key_file.open(QFile::WriteOnly)) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The file %1 could not be found!").arg(dialog.keyFileName())
);
return;
@@ -201,8 +202,8 @@ void CertificateManagementDialog::on_export_cert_button_clicked()
if(not IoUtil::writeAll(key_file, key_blob)) {
QMessageBox::warning(
this,
- "Kristall",
- tr("The file %1 could not be created found!").arg(dialog.keyFileName())
+ tr("Kristall"),
+ tr("The file %1 could not be created!").arg(dialog.keyFileName())
);
return;
}
@@ -222,7 +223,7 @@ void CertificateManagementDialog::on_import_cert_button_clicked()
if(not cert_file.open(QFile::ReadOnly)) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The file %1 could not be found!").arg(dialog.certificateFileName())
);
return;
@@ -232,7 +233,7 @@ void CertificateManagementDialog::on_import_cert_button_clicked()
if(not key_file.open(QFile::ReadOnly)) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The file %1 could not be found!").arg(dialog.keyFileName())
);
return;
@@ -250,7 +251,8 @@ void CertificateManagementDialog::on_import_cert_button_clicked()
dialog.keyFileName().endsWith(".der") ? QSsl::Der : QSsl::Pem,
};
ident.user_notes = tr("Imported from:\r\nkey: %1\r\n:cert: %2").arg(dialog.keyFileName(), dialog.certificateFileName());
- ident.display_name = "Imported Certificate";
+ //: Default name
+ ident.display_name = tr("Imported Certificate");
ident.auto_enable = false;
ident.host_filter = "";
ident.is_persistent = true;
@@ -258,7 +260,7 @@ void CertificateManagementDialog::on_import_cert_button_clicked()
if(ident.private_key.isNull()) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The key file %1 could not be loaded. Please verify your key file.").arg(dialog.keyFileName())
);
return;
@@ -267,7 +269,7 @@ void CertificateManagementDialog::on_import_cert_button_clicked()
if(ident.certificate.isNull()) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("The certificate file %1 could not be loaded. Please verify your certificate.").arg(dialog.keyFileName())
);
return;
@@ -276,7 +278,7 @@ void CertificateManagementDialog::on_import_cert_button_clicked()
if(not identity_set.addCertificate(tr("Imported Certificates"), ident)) {
QMessageBox::warning(
this,
- "Kristall",
+ tr("Kristall"),
tr("Failed to import the certificate.")
);
}
diff --git a/src/dialogs/settingsdialog.cpp b/src/dialogs/settingsdialog.cpp
index b883970..8072b43 100644
--- a/src/dialogs/settingsdialog.cpp
+++ b/src/dialogs/settingsdialog.cpp
@@ -45,9 +45,9 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
this->ui->ui_density->addItem(tr("Classic"), QVariant::fromValue<int>(int(UIDensity::classic)));
this->ui->list_symbol->clear();
- this->ui->list_symbol->addItem("Filled circle", QVariant::fromValue<int>(int(QTextListFormat::Style::ListDisc)));
- this->ui->list_symbol->addItem("Circle", QVariant::fromValue<int>(int(QTextListFormat::Style::ListCircle)));
- this->ui->list_symbol->addItem("Square", QVariant::fromValue<int>(int(QTextListFormat::Style::ListSquare)));
+ this->ui->list_symbol->addItem(tr("Filled circle"), QVariant::fromValue<int>(int(QTextListFormat::Style::ListDisc)));
+ this->ui->list_symbol->addItem(tr("Circle"), QVariant::fromValue<int>(int(QTextListFormat::Style::ListCircle)));
+ this->ui->list_symbol->addItem(tr("Square"), QVariant::fromValue<int>(int(QTextListFormat::Style::ListSquare)));
setGeminiStyle(DocumentStyle { });
@@ -80,11 +80,11 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
}
this->ui->redirection_mode->clear();
- this->ui->redirection_mode->addItem("Ask for cross-scheme or cross-host redirection", int(GenericSettings::WarnOnHostChange | GenericSettings::WarnOnSchemeChange));
- this->ui->redirection_mode->addItem("Ask for cross-scheme redirection", int(GenericSettings::WarnOnSchemeChange));
- this->ui->redirection_mode->addItem("Ask for cross-host redirection", int(GenericSettings::WarnOnHostChange));
- this->ui->redirection_mode->addItem("Ask for all redirection", int(GenericSettings::WarnAlways));
- this->ui->redirection_mode->addItem("Silently redirect everything", int(GenericSettings::WarnNever));
+ this->ui->redirection_mode->addItem(tr("Ask for cross-scheme or cross-host redirection"), int(GenericSettings::WarnOnHostChange | GenericSettings::WarnOnSchemeChange));
+ this->ui->redirection_mode->addItem(tr("Ask for cross-scheme redirection"), int(GenericSettings::WarnOnSchemeChange));
+ this->ui->redirection_mode->addItem(tr("Ask for cross-host redirection"), int(GenericSettings::WarnOnHostChange));
+ this->ui->redirection_mode->addItem(tr("Ask for all redirection"), int(GenericSettings::WarnAlways));
+ this->ui->redirection_mode->addItem(tr("Silently redirect everything"), int(GenericSettings::WarnNever));
connect(this->ui->tabWidget, &QTabWidget::currentChanged, this, [this] (int index) {
if (index != 1) /* Style tab */
@@ -260,7 +260,7 @@ void SettingsDialog::setOptions(const GenericSettings &options)
this->ui->search_engine->clear();
QString search = this->current_options.search_engine;
- this->ui->search_engine->lineEdit()->setPlaceholderText("URL with '%1' in place of query");
+ this->ui->search_engine->lineEdit()->setPlaceholderText(tr("URL with '%1' in place of query"));
this->ui->search_engine->addItem("gemini://geminispace.info/search?%1");
this->ui->search_engine->addItem("gemini://gus.guru/search?%1");
this->ui->search_engine->addItem("gemini://houston.coder.town/search?%1");
@@ -317,7 +317,7 @@ void SettingsDialog::setOptions(const GenericSettings &options)
this->ui->emojis_on->setEnabled(false);
this->ui->emojis_off->setEnabled(false);
this->ui->emojis_label->setToolTip(
- this->ui->emojis_label->toolTip() + " (not supported in this build)");
+ this->ui->emojis_label->toolTip() + tr(" (not supported in this build)"));
}
}
@@ -615,9 +615,9 @@ void SettingsDialog::on_preset_new_clicked()
{
QInputDialog dlg { this };
dlg.setInputMode(QInputDialog::TextInput);
- dlg.setOkButtonText("Save");
- dlg.setCancelButtonText("Cancel");
- dlg.setLabelText("Enter the name of your new preset:");
+ dlg.setOkButtonText(tr("Save"));
+ dlg.setCancelButtonText(tr("Cancel"));
+ dlg.setLabelText(tr("Enter the name of your new preset:"));
if(dlg.exec() != QInputDialog::Accepted)
return;
@@ -626,7 +626,7 @@ void SettingsDialog::on_preset_new_clicked()
bool override = false;
if(this->predefined_styles.contains(name))
{
- auto response = QMessageBox::question(this, "Kristall", QString("A style with the name '%1' already exists! Replace?").arg(name));
+ auto response = QMessageBox::question(this, "Kristall", QString(tr("A style with the name '%1' already exists! Replace?")).arg(name));
if(response != QMessageBox::Yes)
return;
override = true;
@@ -646,7 +646,7 @@ void SettingsDialog::on_preset_save_clicked()
if(name.isEmpty())
return;
- auto response = QMessageBox::question(this, "Kristall", QString("Do you want to override the style '%1'?").arg(name));
+ auto response = QMessageBox::question(this, "Kristall", QString(tr("Do you want to override the style '%1'?")).arg(name));
if(response != QMessageBox::Yes)
return;
@@ -660,7 +660,7 @@ void SettingsDialog::on_preset_load_clicked()
if(name.isEmpty())
return;
- auto response = QMessageBox::question(this, "Kristall", QString("Do you want to load the style '%1'?\r\nThis will discard all currently set up values!").arg(name));
+ auto response = QMessageBox::question(this, "Kristall", QString(tr("Do you want to load the style '%1'?\r\nThis will discard all currently set up values!")).arg(name));
if(response != QMessageBox::Yes)
return;
@@ -698,7 +698,7 @@ void SettingsDialog::on_preset_import_clicked()
{
QFileDialog dialog { this };
dialog.setAcceptMode(QFileDialog::AcceptOpen);
- dialog.selectNameFilter("Kristall Theme (*.kthm)");
+ dialog.selectNameFilter(tr("Kristall Theme (*.kthm)"));
if(dialog.exec() !=QFileDialog::Accepted)
return;
@@ -715,9 +715,9 @@ void SettingsDialog::on_preset_import_clicked()
{
QInputDialog dlg { this };
dlg.setInputMode(QInputDialog::TextInput);
- dlg.setOkButtonText("Save");
- dlg.setCancelButtonText("Cancel");
- dlg.setLabelText("Imported preset has no name.\r\nPlease enter a name for the preset:");
+ dlg.setOkButtonText(tr("Save"));
+ dlg.setCancelButtonText(tr("Cancel"));
+ dlg.setLabelText(tr("Imported preset has no name.\r\nPlease enter a name for the preset:"));
if(dlg.exec() != QDialog::Accepted)
return;
name = dlg.textValue();
@@ -726,7 +726,7 @@ void SettingsDialog::on_preset_import_clicked()
bool override = false;
if(this->predefined_styles.contains(name))
{
- auto response = QMessageBox::question(this, "Kristall", QString("Do you want to override the style '%1'?").arg(name));
+ auto response = QMessageBox::question(this, "Kristall", QString(tr("Do you want to override the style '%1'?")).arg(name));
if(response != QMessageBox::Yes)
return;
override = true;
@@ -751,7 +751,7 @@ void SettingsDialog::on_preset_export_clicked()
QFileDialog dialog { this };
dialog.setAcceptMode(QFileDialog::AcceptSave);
- dialog.selectNameFilter("Kristall Theme (*.kthm)");
+ dialog.selectNameFilter(tr("Kristall Theme (*.kthm)"));
dialog.selectFile(QString("%1.kthm").arg(name));
if(dialog.exec() !=QFileDialog::Accepted)
diff --git a/src/ioutil.cpp b/src/ioutil.cpp
index 6257877..8e07367 100644
--- a/src/ioutil.cpp
+++ b/src/ioutil.cpp
@@ -18,14 +18,14 @@ bool IoUtil::writeAll(QIODevice &dst, QByteArray const & src)
QString IoUtil::size_human(qint64 size)
{
if(size < 1024)
- return QString("%1 B").arg(size);
+ return QString(QObject::tr("%1 B")).arg(size);
float num = size;
QStringList list;
- list << "KB" << "MB" << "GB" << "TB";
+ list << QObject::tr("KB") << QObject::tr("MB") << QObject::tr("GB") << QObject::tr("TB");
QStringListIterator i(list);
- QString unit("B");
+ QString unit(QObject::tr("B"));
while(num >= 1024.0 && i.hasNext())
{
diff --git a/src/kristall.pro b/src/kristall.pro
index 6a8efed..e2b80bf 100644
--- a/src/kristall.pro
+++ b/src/kristall.pro
@@ -192,8 +192,11 @@ FORMS += \
widgets/mediaplayer.ui \
widgets/ssltrusteditor.ui
+CONFIG += lrelease embed_translations
+
TRANSLATIONS += \
- kristall_en_US.ts
+ ../translations/kristall_en_US.ts \
+ ../translations/kristall_ru.ts
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
diff --git a/src/main.cpp b/src/main.cpp
index e1098bd..bb81072 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -2,6 +2,7 @@
#include "kristall.hpp"
#include <QApplication>
+#include <QTranslator>
#include <QUrl>
#include <QSettings>
#include <QCommandLineParser>
@@ -384,6 +385,12 @@ int main(int argc, char *argv[])
}
});
+ QTranslator trans, qttrans;
+ qttrans.load(QLocale(), QLatin1String("qt"), "_", "/usr/local/share/qt5/translations");
+ trans.load(QLocale(), QLatin1String("kristall"), QLatin1String("_"), QLatin1String(":/i18n"));
+ app.installTranslator(&qttrans);
+ app.installTranslator(&trans);
+
{
// Initialise default fonts
#ifdef Q_OS_WIN32
@@ -406,12 +413,12 @@ int main(int argc, char *argv[])
QCommandLineOption newWindowOption {
{ "w", "new-window" },
- app.tr("Opens the provided links in a new window instead of tabs."),
+ QApplication::tr("Opens the provided links in a new window instead of tabs."),
};
QCommandLineOption isolatedOption {
{ "i", "isolated" },
- app.tr("Starts the instance of kristall as a isolated session that cannot communicate with other windows."),
+ QApplication::tr("Starts the instance of kristall as a isolated session that cannot communicate with other windows."),
};
cli_parser.addVersionOption();
@@ -419,7 +426,7 @@ int main(int argc, char *argv[])
cli_parser.addOption(newWindowOption);
cli_parser.addOption(isolatedOption);
- cli_parser.addPositionalArgument("urls", app.tr("The urls that should be opened instead of the start page"), "[urls...]");
+ cli_parser.addPositionalArgument("urls", QApplication::tr("The urls that should be opened instead of the start page"), "[urls...]");
cli_parser.process(app);
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 8d78baf..005953e 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -464,12 +464,12 @@ void MainWindow::on_actionQuit_triggered()
void MainWindow::on_actionAbout_triggered()
{
QMessageBox::about(this,
- "Kristall",
-R"about(Kristall, an OpenSource Gemini browser.
+ tr("Kristall"),
+tr(R"about(Kristall, an OpenSource Gemini browser.
Made by Felix "xq" Queißner
This is free software. You can get the source code at
-https://github.com/MasterQ32/Kristall)about"
+https://github.com/MasterQ32/Kristall)about")
);
}
@@ -530,9 +530,9 @@ void MainWindow::setFileStatus(const DocumentStats &stats)
{
if(stats.isValid()) {
this->file_size->setText(IoUtil::size_human(stats.file_size));
- this->file_cached->setText(stats.loaded_from_cache ? "(cached)" : "");
+ this->file_cached->setText(stats.loaded_from_cache ? tr("(cached)") : "");
this->file_mime->setText(stats.mime_type.toString(false));
- this->load_time->setText(QString("%1 ms").arg(stats.loading_time));
+ this->load_time->setText(QString(tr("%1 ms")).arg(stats.loading_time));
} else {
this->file_size->setText("");
this->file_cached->setText("");
@@ -562,7 +562,7 @@ void MainWindow::on_actionSave_as_triggered()
}
else
{
- QMessageBox::warning(this, "Kristall", QString("Could not save file:\r\n%1").arg(file.errorString()));
+ QMessageBox::warning(this, tr("Kristall"), QString("Could not save file:\r\n%1").arg(file.errorString()));
}
}
}
@@ -629,12 +629,12 @@ void MainWindow::on_history_view_customContextMenuRequested(const QPoint pos)
if(QUrl url = tab->history.get(idx); url.isValid()) {
QMenu menu;
- connect(menu.addAction("Open here"), &QAction::triggered, [tab, idx]() {
+ connect(menu.addAction(tr("Open here")), &QAction::triggered, [tab, idx]() {
// We do the same thing as a double click here
tab->navigateBack(idx);
});
- connect(menu.addAction("Open in new tab"), &QAction::triggered, [this, url]() {
+ connect(menu.addAction(tr("Open in new tab")), &QAction::triggered, [this, url]() {
addNewTab(true, url);
});
@@ -652,18 +652,18 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos)
BrowserTab * tab = this->curTab();
if(tab != nullptr) {
- connect(menu.addAction("Open here"), &QAction::triggered, [tab, url]() {
+ connect(menu.addAction(tr("Open here")), &QAction::triggered, [tab, url]() {
tab->navigateTo(url, BrowserTab::PushImmediate);
});
}
- connect(menu.addAction("Open in new tab"), &QAction::triggered, [this, url]() {
+ connect(menu.addAction(tr("Open in new tab")), &QAction::triggered, [this, url]() {
addNewTab(true, url);
});
menu.addSeparator();
- connect(menu.addAction("Relocate"), &QAction::triggered, [this, idx]() {
+ connect(menu.addAction(tr("Relocate")), &QAction::triggered, [this, idx]() {
QInputDialog dialog { this };
dialog.setInputMode(QInputDialog::TextInput);
@@ -676,7 +676,7 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos)
kristall::favourites.editFavouriteDest(idx, QUrl(dialog.textValue()));
});
- connect(menu.addAction("Rename"), &QAction::triggered, [this, idx]() {
+ connect(menu.addAction(tr("Rename")), &QAction::triggered, [this, idx]() {
QInputDialog dialog { this };
dialog.setInputMode(QInputDialog::TextInput);
@@ -691,7 +691,7 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos)
menu.addSeparator();
- connect(menu.addAction("Delete"), &QAction::triggered, [idx]() {
+ connect(menu.addAction(tr("Delete")), &QAction::triggered, [idx]() {
kristall::favourites.destroyFavourite(idx);
});
@@ -700,7 +700,7 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos)
else if(QString group = kristall::favourites.group(idx); not group.isEmpty()) {
QMenu menu;
- connect(menu.addAction("Rename group"), &QAction::triggered, [this, group]() {
+ connect(menu.addAction(tr("Rename group")), &QAction::triggered, [this, group]() {
QInputDialog dialog { this };
dialog.setInputMode(QInputDialog::TextInput);
@@ -711,18 +711,18 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos)
return;
if (!kristall::favourites.renameGroup(group, dialog.textValue()))
- QMessageBox::information(this, "Kristall", "Rename failed: group name already in use.");
+ QMessageBox::information(this, tr("Kristall"), tr("Rename failed: group name already in use."));
});
menu.addSeparator();
- connect(menu.addAction("Delete group"), &QAction::triggered, [this, idx]() {
+ connect(menu.addAction(tr("Delete group")), &QAction::triggered, [this, idx]() {
if (QMessageBox::question(
this,
- "Kristall",
- "Are you sure you want to delete this Favourite Group?\n"
+ tr("Kristall"),
+ tr("Are you sure you want to delete this Favourite Group?\n"
"All favourites in this group will be lost.\n\n"
- "This action cannot be undone!"
+ "This action cannot be undone!")
) != QMessageBox::Yes)
{
return;
@@ -736,7 +736,7 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos)
else {
QMenu menu;
- connect(menu.addAction("Create new group..."), &QAction::triggered, [this]() {
+ connect(menu.addAction(tr("Create new group...")), &QAction::triggered, [this]() {
this->newGroupDialog();
});
diff --git a/src/protocols/abouthandler.cpp b/src/protocols/abouthandler.cpp
index 8c90f5f..8a60962 100644
--- a/src/protocols/abouthandler.cpp
+++ b/src/protocols/abouthandler.cpp
@@ -26,7 +26,7 @@ bool AboutHandler::startRequest(const QUrl &url, ProtocolHandler::RequestOptions
{
QByteArray document;
- document.append("# Favourites\n");
+ document.append(tr("# Favourites\n"));
QString current_group;
diff --git a/src/trustedhostcollection.cpp b/src/trustedhostcollection.cpp
index bbc7720..a3d6c1a 100644
--- a/src/trustedhostcollection.cpp
+++ b/src/trustedhostcollection.cpp
@@ -28,9 +28,9 @@ QVariant TrustedHostCollection::headerData(int section, Qt::Orientation orientat
{
switch(section)
{
- case 0: return "Host Name";
- case 1: return "First Seen";
- case 2: return "Key Type";
+ case 0: return QObject::tr("Host Name");
+ case 1: return QObject::tr("First Seen");
+ case 2: return QObject::tr("Key Type");
}
}
return QVariant { };
@@ -71,8 +71,8 @@ QVariant TrustedHostCollection::data(const QModelIndex &index, int role) const
case QSsl::Ec: return "EC";
// case QSsl::Dh: return "DH";
case QSsl::Dsa: return "DSA";
- case QSsl::Opaque: return "Opaque";
- default: return "Unforseen";
+ case QSsl::Opaque: return QObject::tr("Opaque");
+ default: return QObject::tr("Unforseen");
}
}
}
diff --git a/src/widgets/favouritepopup.cpp b/src/widgets/favouritepopup.cpp
index 2039115..7395445 100644
--- a/src/widgets/favouritepopup.cpp
+++ b/src/widgets/favouritepopup.cpp
@@ -18,13 +18,13 @@ FavouritePopup::FavouritePopup(QToolButton *button, QWidget *parent)
auto layout = new QGridLayout();
// Title
- auto title_lab = new QLabel("Title:");
+ auto title_lab = new QLabel(tr("Title:"));
this->fav_title = new QLineEdit();
layout->addWidget(title_lab, 0, 0);
layout->addWidget(this->fav_title, 0, 1);
// Group
- auto group_lab = new QLabel("Group:");
+ auto group_lab = new QLabel(tr("Group:"));
layout->addWidget(group_lab);
{
this->fav_group = new QComboBox();
@@ -42,7 +42,7 @@ FavouritePopup::FavouritePopup(QToolButton *button, QWidget *parent)
}
// Unfavourite
- auto unfav_btn = new QPushButton("Unfavourite");
+ auto unfav_btn = new QPushButton(tr("Unfavourite"));
layout->addWidget(unfav_btn);
connect(unfav_btn, &QPushButton::clicked, this, [this]() {
this->setVisible(false);
@@ -50,7 +50,7 @@ FavouritePopup::FavouritePopup(QToolButton *button, QWidget *parent)
});
// Confirm
- this->confirm_btn = new QPushButton("Confirm");
+ this->confirm_btn = new QPushButton(tr("Confirm"));
layout->addWidget(this->confirm_btn);
connect(confirm_btn, &QPushButton::clicked, this, [this]() {
this->confirmPressed();
diff --git a/translations/kristall_en_US.ts b/translations/kristall_en_US.ts
new file mode 100644
index 0000000..88b0719
--- /dev/null
+++ b/translations/kristall_en_US.ts
@@ -0,0 +1,2040 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="en_US">
+<context>
+ <name>AboutHandler</name>
+ <message>
+ <location filename="../src/protocols/abouthandler.cpp" line="29"/>
+ <source># Favourites
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BrowserTab</name>
+ <message>
+ <location filename="../src/browsertab.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="40"/>
+ <source>Navigate back</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="43"/>
+ <location filename="../src/browsertab.cpp" line="1727"/>
+ <source>Back</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="56"/>
+ <source>Navigate forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="59"/>
+ <location filename="../src/browsertab.cpp" line="1732"/>
+ <source>Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="72"/>
+ <source>Stop loading</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="75"/>
+ <location filename="../src/browsertab.cpp" line="1738"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="88"/>
+ <source>Refresh current location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="91"/>
+ <source>Reload</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="104"/>
+ <source>Kristall Home Page</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="107"/>
+ <source>Home</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="120"/>
+ <source>Go the root path of current location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="123"/>
+ <source>/</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="136"/>
+ <source>Go the parent path of current location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="139"/>
+ <source>P</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="149"/>
+ <source>gemini://</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="159"/>
+ <source>Add/remove from favourites</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="162"/>
+ <source>Favourite</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="180"/>
+ <source>Enable/disable client certificate for this tab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="183"/>
+ <source>Client Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="214"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Start surfin!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="267"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="277"/>
+ <location filename="../src/browsertab.ui" line="280"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="290"/>
+ <source>Hide search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="293"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="177"/>
+ <location filename="../src/browsertab.cpp" line="183"/>
+ <location filename="../src/browsertab.cpp" line="346"/>
+ <location filename="../src/browsertab.cpp" line="560"/>
+ <location filename="../src/browsertab.cpp" line="888"/>
+ <location filename="../src/browsertab.cpp" line="960"/>
+ <location filename="../src/browsertab.cpp" line="1065"/>
+ <location filename="../src/browsertab.cpp" line="1082"/>
+ <location filename="../src/browsertab.cpp" line="1141"/>
+ <location filename="../src/browsertab.cpp" line="1172"/>
+ <location filename="../src/browsertab.cpp" line="1184"/>
+ <source>Kristall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="177"/>
+ <source>URI scheme not supported or disabled: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="183"/>
+ <source>Failed to cancel running request!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="291"/>
+ <source>Source of %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="297"/>
+ <source>Mime type: %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="347"/>
+ <source>No search engine is configured.
+Please configure one in the settings to allow searching via the URL bar.
+
+See the Help menu for additional information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="439"/>
+ <source>The server didn&apos;t respond in time.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="453"/>
+ <source>The page requested a authorized client certificate, but none was provided.<byte value="xd"/>
+Original query was: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="561"/>
+ <source>Failed to convert input charset %1 to UTF-8. Cannot display the file.<byte value="xd"/>
+Do you want to display unconverted data anyways?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="565"/>
+ <source>Failed to convert input charset %1 to UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="728"/>
+ <source>Failed to load picture:<byte value="xd"/>
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="757"/>
+ <source>Unsupported Media Type!
+
+Kristall cannot display the requested document
+To view this media, use the File menu to save it to your local drive, then open the saved file in another program that can display the document for you.
+
+Details:
+- MIME type: %1/%2
+- Size: %3
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="773"/>
+ <source># Unsupported Media Type!
+
+Kristall cannot display the requested document.
+
+&gt; To view this media, use the File menu to save it to your local drive, then open the saved file in another program that can display the document for you.
+
+```
+Details:
+- MIME type: %1/%2
+- Size: %3
+```
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="877"/>
+ <source>Site requires input:
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="889"/>
+ <source>Your input message is too long. Your input is %1 bytes, but a maximum of %2 bytes are allowed.<byte value="xd"/>
+Please cancel or shorten your input.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="913"/>
+ <source>Too many consecutive redirections. The last redirection would have redirected you to:<byte value="xd"/>
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="925"/>
+ <source>The location you visited wants to redirect you to another location:<byte value="xd"/>
+%1<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="933"/>
+ <source>The location you visited wants to redirect you to another host and switch the protocol.<byte value="xd"/>
+Protocol: %1<byte value="xd"/>
+New Host: %2<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="942"/>
+ <source>The location you visited wants to switch the protocol.<byte value="xd"/>
+Protocol: %1<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="950"/>
+ <source>The location you visited wants to redirect you to another host.<byte value="xd"/>
+New Host: %1<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="964"/>
+ <source>Redirection to %1 cancelled by user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="978"/>
+ <source>Redirection to %1 failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="987"/>
+ <source>An error happened:<byte value="xd"/>
+%0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1066"/>
+ <source>This sites certificate could not be verified! This may be a man-in-the-middle attack on the server to send you malicious content (or the server admin made a configuration mistake).<byte value="xd"/>
+Are you sure you want to continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1083"/>
+ <source>Do you really want to add the server certificate to your list of trusted hosts?<byte value="xd"/>
+Host: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1126"/>
+ <source>This style has no embedded name. Please enter a name for the preset:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1142"/>
+ <source>Do you want to add the style %1 to your collection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1173"/>
+ <source>The theme %1 was successfully added to your theme collection!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1185"/>
+ <source>Malicious site detected! This site tries to use the Kristall control scheme!<byte value="xd"/>
+A trustworthy site does not do this!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1211"/>
+ <location filename="../src/browsertab.cpp" line="1710"/>
+ <source>Failed to start system URL handler for<byte value="xd"/>
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1216"/>
+ <source>The requested url uses a scheme that has been disabled in the settings:<byte value="xd"/>
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1220"/>
+ <source>The requested url cannot be processed by Kristall:<byte value="xd"/>
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1473"/>
+ <source>You currently have a transient session active!<byte value="xd"/>
+If you disable the session, you will not be able to restore it. Continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1527"/>
+ <source>You requested a %1-URL with a client certificate, but these are not supported for this scheme. Continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1545"/>
+ <source>You want to visit a new host, but have a client certificate enabled. This may be a risk to expose your identity to another host.<byte value="xd"/>
+Do you want to keep the certificate enabled?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1558"/>
+ <source>Your client certificate has a host filter enabled and this site does not match the host filter.<byte value="xd"/>
+New URL: %1<byte value="xd"/>
+Host Filter: %2<byte value="xd"/>
+Do you want to keep the certificate enabled?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1576"/>
+ <source>An automatic client certificate was detected for this site:<byte value="xd"/>
+%1<byte value="xd"/>
+Do you want to enable that certificate?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1647"/>
+ <source>Failed to generate temporary crypto-identitiy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1700"/>
+ <source>Open in new tab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1706"/>
+ <source>Open with external web browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1715"/>
+ <source>Follow link</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1719"/>
+ <source>Copy link</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1742"/>
+ <source>Refresh</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1749"/>
+ <source>Copy to clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1754"/>
+ <source>Select all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1760"/>
+ <source>View document source</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CertificateIoDialog</name>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="22"/>
+ <source>Key Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="39"/>
+ <source>Key File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="51"/>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="72"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="60"/>
+ <source>Certificate File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="30"/>
+ <source>Export Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="32"/>
+ <source>Import Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="68"/>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="84"/>
+ <source>Certificate File(*.pem *.der)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CertificateManagementDialog</name>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="14"/>
+ <source>Certificate Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="52"/>
+ <source>Create new certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="55"/>
+ <source>Create...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="65"/>
+ <source>Import certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="68"/>
+ <source>Import...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="94"/>
+ <source>Export certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="97"/>
+ <source>Export...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="110"/>
+ <source>Delete certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="113"/>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="130"/>
+ <source>Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="138"/>
+ <source>Display Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="148"/>
+ <source>Common Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="162"/>
+ <source>Expiration Date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="179"/>
+ <source>Expires in</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="189"/>
+ <source>??? days</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="196"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="203"/>
+ <source>Notes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="220"/>
+ <source>Host Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="227"/>
+ <source>gemini://*</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="234"/>
+ <source>If this is checked, Kristall will automatically enable this certificate when visiting a URL matching the host filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="237"/>
+ <source>Auto-Enable Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="65"/>
+ <source>%1 day</source>
+ <comment>%1 days</comment>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="117"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="125"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="132"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="139"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="161"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="177"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="189"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="205"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="226"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="236"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="263"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="272"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="281"/>
+ <source>Kristall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="118"/>
+ <source>Do you really want to delete this certificate?<byte value="xd"/>
+<byte value="xd"/>
+You will not be able to restore the identity after this!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="125"/>
+ <source>Could not destroy identity!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="133"/>
+ <source>Do you want to delete the group &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="139"/>
+ <source>Could not delete group!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="162"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="190"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="227"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="237"/>
+ <source>The file %1 could not be found!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="178"/>
+ <source>The file %1 could not be created found!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="206"/>
+ <source>The file %1 could not be created!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="253"/>
+ <source>Imported from:<byte value="xd"/>
+key: %1<byte value="xd"/>
+:cert: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="255"/>
+ <source>Imported Certificate</source>
+ <extracomment>Default name</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="264"/>
+ <source>The key file %1 could not be loaded. Please verify your key file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="273"/>
+ <source>The certificate file %1 could not be loaded. Please verify your certificate.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="278"/>
+ <source>Imported Certificates</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="282"/>
+ <source>Failed to import the certificate.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CertificateSelectionDialog</name>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="14"/>
+ <source>Select client certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="23"/>
+ <source>Select existing certificate:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="36"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="55"/>
+ <source>Create new identity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="82"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="98"/>
+ <source>Create transient session certificate:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="107"/>
+ <source>30 Minutes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="114"/>
+ <source>1 Hour</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="121"/>
+ <source>12 Hours</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="128"/>
+ <source>24 Hours</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="135"/>
+ <source>48 Hours</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FavouriteCollection</name>
+ <message>
+ <location filename="../src/favouritecollection.cpp" line="472"/>
+ <source>Unsorted</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FavouritePopup</name>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="21"/>
+ <source>Title:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="27"/>
+ <source>Group:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="45"/>
+ <source>Unfavourite</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="53"/>
+ <source>Confirm</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>GopherClient</name>
+ <message>
+ <location filename="../src/protocols/gopherclient.cpp" line="56"/>
+ <source>Search:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../src/mainwindow.ui" line="14"/>
+ <source>Kristall Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="65"/>
+ <source>Document Outline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="68"/>
+ <source>Ctrl+M</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="106"/>
+ <source>Favourites</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="109"/>
+ <source>Ctrl+B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="150"/>
+ <source>History</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="153"/>
+ <source>Ctrl+H</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="189"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="205"/>
+ <location filename="../src/mainwindow.ui" line="418"/>
+ <source>Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="215"/>
+ <source>View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="222"/>
+ <source>Navigation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="245"/>
+ <source>About...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="254"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="257"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="262"/>
+ <source>New Tab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="265"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="274"/>
+ <source>Close Tab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="277"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="286"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="289"/>
+ <source>Ctrl+,</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="298"/>
+ <location filename="../src/mainwindow.ui" line="301"/>
+ <source>Back</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="304"/>
+ <source>Alt+Left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="313"/>
+ <location filename="../src/mainwindow.ui" line="316"/>
+ <source>Forward</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="319"/>
+ <source>Alt+Right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="328"/>
+ <source>Root</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="331"/>
+ <source>Go to the root directory (/)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="334"/>
+ <source>Alt+/</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="343"/>
+ <source>Parent</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="346"/>
+ <source>Go to the parent directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="349"/>
+ <source>Alt+Up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="358"/>
+ <source>Refresh</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="361"/>
+ <source>F5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="370"/>
+ <source>About Qt...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="379"/>
+ <source>Save as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="382"/>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="394"/>
+ <source>Add to favourites</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="397"/>
+ <source>Ctrl+D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="406"/>
+ <source>Go to home</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="409"/>
+ <source>Alt+Home</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="421"/>
+ <source>F1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="430"/>
+ <source>Changelog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="439"/>
+ <source>Manage Certificates…</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="444"/>
+ <source>View document source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="447"/>
+ <source>Ctrl+U</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="452"/>
+ <source>New Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="455"/>
+ <source>Opens a new window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="458"/>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="463"/>
+ <source>Close Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="466"/>
+ <source>Alt+F4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="272"/>
+ <source>Enter name of the new group:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="467"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
+ <location filename="../src/mainwindow.cpp" line="722"/>
+ <source>Kristall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="468"/>
+ <source>Kristall, an OpenSource Gemini browser.
+Made by Felix &quot;xq&quot; Queißner
+
+This is free software. You can get the source code at
+https://github.com/MasterQ32/Kristall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="533"/>
+ <source>(cached)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="535"/>
+ <source>%1 ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="632"/>
+ <location filename="../src/mainwindow.cpp" line="655"/>
+ <source>Open here</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="637"/>
+ <location filename="../src/mainwindow.cpp" line="660"/>
+ <source>Open in new tab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="666"/>
+ <source>Relocate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="670"/>
+ <source>Enter new location of this favourite:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="679"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="683"/>
+ <source>New name of this favourite:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="694"/>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="703"/>
+ <source>Rename group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="707"/>
+ <source>New name of this group:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="714"/>
+ <source>Rename failed: group name already in use.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="719"/>
+ <source>Delete group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="723"/>
+ <source>Are you sure you want to delete this Favourite Group?
+All favourites in this group will be lost.
+
+This action cannot be undone!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="739"/>
+ <source>Create new group...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MediaPlayer</name>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="25"/>
+ <source>Click to play/pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="28"/>
+ <location filename="../src/widgets/mediaplayer.ui" line="58"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="45"/>
+ <source>00:00:00</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="55"/>
+ <source>Mute/unmute audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewIdentitiyDialog</name>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="14"/>
+ <source>Create new certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="25"/>
+ <source>Display Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="32"/>
+ <source>Expiration Date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="48"/>
+ <source>Common Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="55"/>
+ <source>Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QApplication</name>
+ <message>
+ <location filename="../src/main.cpp" line="416"/>
+ <source>Opens the provided links in a new window instead of tabs.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/main.cpp" line="421"/>
+ <source>Starts the instance of kristall as a isolated session that cannot communicate with other windows.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/main.cpp" line="429"/>
+ <source>The urls that should be opened instead of the start page</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../src/ioutil.cpp" line="21"/>
+ <source>%1 B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>MB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>GB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>TB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="28"/>
+ <source>B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/main.cpp" line="615"/>
+ <source>Unsorted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="31"/>
+ <source>Host Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="32"/>
+ <source>First Seen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="33"/>
+ <source>Key Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="74"/>
+ <source>Opaque</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="75"/>
+ <source>Unforseen</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="32"/>
+ <source>Generic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="38"/>
+ <source>UI Theme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="48"/>
+ <source>Icon Theme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="58"/>
+ <source>UI Density</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="69"/>
+ <source>Start Page:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="76"/>
+ <source>about://blank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="83"/>
+ <source>Search engine:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="97"/>
+ <source>Enabled Protocols</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="106"/>
+ <source>Gemini</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="116"/>
+ <source>Gopher</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="126"/>
+ <source>Finger</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="133"/>
+ <source>HTTP</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="140"/>
+ <source>HTTPS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="149"/>
+ <source>Text Rendering</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="158"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="322"/>
+ <source>Fancy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="171"/>
+ <source>Always plain text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="183"/>
+ <source>Enable text highlights</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="192"/>
+ <source>On (Experimental)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="202"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="366"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="400"/>
+ <source>Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="217"/>
+ <source>Gopher Map</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="226"/>
+ <source>Use icons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="239"/>
+ <source>Use text only</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="251"/>
+ <source>Unknown Scheme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="260"/>
+ <source>Use OS default handler</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="270"/>
+ <source>Display error message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="282"/>
+ <source>Hidden files in file:// directories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="291"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="301"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="313"/>
+ <source>URL bar highlights</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="332"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="344"/>
+ <source>Use typographer&apos;s quotes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="347"/>
+ <source>Replace single and double quotes with curly typographer quotes.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="356"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="390"/>
+ <source>On</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="378"/>
+ <source>Render emojis</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="381"/>
+ <source>Whether to render emojis in a page.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="412"/>
+ <source>Max. Number of Redirections</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="426"/>
+ <source>Redirection Handling</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="436"/>
+ <source>Network Timeout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="443"/>
+ <source> ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="456"/>
+ <source>Additional toolbar buttons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="465"/>
+ <source>Home</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="472"/>
+ <source>New tab</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="479"/>
+ <source>Root (/)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="486"/>
+ <source>Parent (..)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="495"/>
+ <source>Total cache size limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="498"/>
+ <source>The total amount of memory that can be occupied by cached items. Set to zero to disable in-memory caching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="505"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="529"/>
+ <source> KiB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="519"/>
+ <source>Cached item size threshold</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="522"/>
+ <source>Items which are below this threshold are cached in memory. Any above are simply discarded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="543"/>
+ <source>Cached item life</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="546"/>
+ <source>How long cached items last before they are expired and require a reload.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="555"/>
+ <source> minutes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="568"/>
+ <source>Unlimited item life</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="571"/>
+ <source>Sets cached items to be unexpirable. Items will only be removed if the cache is full.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="586"/>
+ <source>Style</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="637"/>
+ <source>Background Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="644"/>
+ <source>Standard Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="656"/>
+ <source>This text will be displayed for normal text.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="687"/>
+ <source>Preformatted Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="699"/>
+ <source>This text will be displayed for preformatted text.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="730"/>
+ <source>H1 Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="742"/>
+ <source>This text will be displayed for a level 1 heading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="773"/>
+ <source>H2 Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="785"/>
+ <source>This text will be displayed for a level 2 heading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="817"/>
+ <source>H3 Font</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="832"/>
+ <source>This text will be displayed for a level 3 heading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="867"/>
+ <source>Blockquote font</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="882"/>
+ <source>This font will be used in blockquotes.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="917"/>
+ <source>Local Link Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="924"/>
+ <source>Foreign Link Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="931"/>
+ <source>Cross-Scheme-Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="938"/>
+ <source>Local Link Prefix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="945"/>
+ <source>Extern Link Prefix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="952"/>
+ <source>⇒ </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="959"/>
+ <source>→ </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="968"/>
+ <source>This is a local reference</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="993"/>
+ <source>This is a foreign reference</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1018"/>
+ <source>This reference is cross-scheme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1041"/>
+ <source>Auto-Theme Generation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1052"/>
+ <source>Left/right Page Margin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1059"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1080"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1147"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1174"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1195"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1313"/>
+ <source> px</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1073"/>
+ <source>Top/bottom Page Margin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1094"/>
+ <source>Other options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1103"/>
+ <source>Justify text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1106"/>
+ <source>Justify text on the page, instead of left-aligning it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1113"/>
+ <source>Centre first H1 </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1116"/>
+ <source>Whether to centre the first top-level heading in the document.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1126"/>
+ <source>Text width limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1129"/>
+ <source>Preferred width of formatted text on the page.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1154"/>
+ <source>Enabled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1157"/>
+ <source>Whether to limit the width of formatted text on the page or not.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1167"/>
+ <source>Line height (paragraph)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1188"/>
+ <source>Line height (header)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1209"/>
+ <source>Indentation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1219"/>
+ <source>Par:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1240"/>
+ <source>Hea:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1261"/>
+ <source>Quo:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1282"/>
+ <source>Lst:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1306"/>
+ <source>Indent size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1327"/>
+ <source>List item marker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1338"/>
+ <source>Block Quote Background</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1354"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1391"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1404"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1417"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1434"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1447"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1376"/>
+ <source>Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1388"/>
+ <source>Save as new preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1401"/>
+ <source>Override current preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1414"/>
+ <source>Load preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1428"/>
+ <source>Imports preset…</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1444"/>
+ <source>Export preset…</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1472"/>
+ <source>host.name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1485"/>
+ <source>Gemini TLS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1498"/>
+ <source>HTTPS TLS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="29"/>
+ <source>Disabled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="30"/>
+ <source>Dark Theme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="31"/>
+ <source>Light Theme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="34"/>
+ <source>OS Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="35"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="40"/>
+ <source>Light</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="36"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="41"/>
+ <source>Dark</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="39"/>
+ <source>Automatic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="44"/>
+ <source>Compact</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="45"/>
+ <source>Classic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="48"/>
+ <source>Filled circle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="49"/>
+ <source>Circle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="50"/>
+ <source>Square</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="83"/>
+ <source>Ask for cross-scheme or cross-host redirection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="84"/>
+ <source>Ask for cross-scheme redirection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="85"/>
+ <source>Ask for cross-host redirection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="86"/>
+ <source>Ask for all redirection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="87"/>
+ <source>Silently redirect everything</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="263"/>
+ <source>URL with &apos;%1&apos; in place of query</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="320"/>
+ <source> (not supported in this build)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="618"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="718"/>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="619"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="719"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="620"/>
+ <source>Enter the name of your new preset:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="629"/>
+ <source>A style with the name &apos;%1&apos; already exists! Replace?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="649"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="729"/>
+ <source>Do you want to override the style &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="663"/>
+ <source>Do you want to load the style &apos;%1&apos;?<byte value="xd"/>
+This will discard all currently set up values!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="701"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="754"/>
+ <source>Kristall Theme (*.kthm)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="720"/>
+ <source>Imported preset has no name.<byte value="xd"/>
+Please enter a name for the preset:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslTrustEditor</name>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="20"/>
+ <source>Trust Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="30"/>
+ <source>Certificate Authorities</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="39"/>
+ <source>Use local certificate authorities</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="46"/>
+ <source>Don&apos;t use local certificate authorities</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="55"/>
+ <source>Trusted Hosts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="79"/>
+ <source>Revoke trust</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/kristall_ru.ts b/translations/kristall_ru.ts
new file mode 100644
index 0000000..a467a1d
--- /dev/null
+++ b/translations/kristall_ru.ts
@@ -0,0 +1,2079 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="ru">
+<context>
+ <name>AboutHandler</name>
+ <message>
+ <location filename="../src/protocols/abouthandler.cpp" line="29"/>
+ <source># Favourites
+</source>
+ <translation># Избранное
+</translation>
+ </message>
+</context>
+<context>
+ <name>BrowserTab</name>
+ <message>
+ <location filename="../src/browsertab.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="40"/>
+ <source>Navigate back</source>
+ <translation>Перейти назад</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="43"/>
+ <location filename="../src/browsertab.cpp" line="1727"/>
+ <source>Back</source>
+ <translation>Назад</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="56"/>
+ <source>Navigate forward</source>
+ <translation>Перейти вперед</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="59"/>
+ <location filename="../src/browsertab.cpp" line="1732"/>
+ <source>Forward</source>
+ <translation>Вперёд</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="72"/>
+ <source>Stop loading</source>
+ <translation>Прервать загрузку</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="75"/>
+ <location filename="../src/browsertab.cpp" line="1738"/>
+ <source>Stop</source>
+ <translation>Остановить</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="88"/>
+ <source>Refresh current location</source>
+ <translation>Обновить текущую страницу</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="91"/>
+ <source>Reload</source>
+ <translation>Обновить</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="104"/>
+ <source>Kristall Home Page</source>
+ <translation>Домашняя страница Kristall</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="107"/>
+ <source>Home</source>
+ <translation>Домой</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="120"/>
+ <source>Go the root path of current location</source>
+ <translation>Перейти в корень</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="123"/>
+ <source>/</source>
+ <translation>/</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="136"/>
+ <source>Go the parent path of current location</source>
+ <translation>Перейти в родительский каталог</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="139"/>
+ <source>P</source>
+ <translation>P</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="149"/>
+ <source>gemini://</source>
+ <translation>gemini://</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="159"/>
+ <source>Add/remove from favourites</source>
+ <translation>Добавить или удалить из Избранного</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="162"/>
+ <source>Favourite</source>
+ <translation>Избранное</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="180"/>
+ <source>Enable/disable client certificate for this tab</source>
+ <translation>Использовать клиентский сертификат для данной вкладки</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="183"/>
+ <source>Client Certificate</source>
+ <translation>Сертификат клиента</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="214"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Start surfin!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Можно начинать!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="267"/>
+ <source>Previous</source>
+ <translation>Предыдущий</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="277"/>
+ <location filename="../src/browsertab.ui" line="280"/>
+ <source>Next</source>
+ <translation>Далее</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="290"/>
+ <source>Hide search</source>
+ <translation>Скрыть поиск</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.ui" line="293"/>
+ <source>Hide</source>
+ <translation>Скрыть</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="177"/>
+ <location filename="../src/browsertab.cpp" line="183"/>
+ <location filename="../src/browsertab.cpp" line="346"/>
+ <location filename="../src/browsertab.cpp" line="560"/>
+ <location filename="../src/browsertab.cpp" line="888"/>
+ <location filename="../src/browsertab.cpp" line="960"/>
+ <location filename="../src/browsertab.cpp" line="1065"/>
+ <location filename="../src/browsertab.cpp" line="1082"/>
+ <location filename="../src/browsertab.cpp" line="1141"/>
+ <location filename="../src/browsertab.cpp" line="1172"/>
+ <location filename="../src/browsertab.cpp" line="1184"/>
+ <source>Kristall</source>
+ <translation>Kristall</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="177"/>
+ <source>URI scheme not supported or disabled: </source>
+ <translation>Схема адреса не поддерживается или отключена: </translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="183"/>
+ <source>Failed to cancel running request!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="291"/>
+ <source>Source of %0</source>
+ <translation>Исходный текст %0</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="297"/>
+ <source>Mime type: %0</source>
+ <translation>Тип Mime: %0</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="347"/>
+ <source>No search engine is configured.
+Please configure one in the settings to allow searching via the URL bar.
+
+See the Help menu for additional information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="439"/>
+ <source>The server didn&apos;t respond in time.</source>
+ <translation>Сервер не ответил за отведенное время.</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="453"/>
+ <source>The page requested a authorized client certificate, but none was provided.<byte value="xd"/>
+Original query was: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="561"/>
+ <source>Failed to convert input charset %1 to UTF-8. Cannot display the file.<byte value="xd"/>
+Do you want to display unconverted data anyways?</source>
+ <translation>Не удалось преобразовать из кодировки %1 в UTF-8. Невозможно отобразить файл.
+Вы хотите отобразить непреобразованные данные?</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="565"/>
+ <source>Failed to convert input charset %1 to UTF-8.</source>
+ <translation>Не удалось преобразовать из кодировки %1 в UTF-8.</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="728"/>
+ <source>Failed to load picture:<byte value="xd"/>
+%1</source>
+ <translation>Не удалось загрузить изображение:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="757"/>
+ <source>Unsupported Media Type!
+
+Kristall cannot display the requested document
+To view this media, use the File menu to save it to your local drive, then open the saved file in another program that can display the document for you.
+
+Details:
+- MIME type: %1/%2
+- Size: %3
+</source>
+ <translation>Медиа-тип не поддерживается!
+
+Kristall не может отобразить запрошенный документ.
+Чтобы просмотреть файл, используйте меню Файл чтобы сохранить его на диск, а затем откройте в программе, которая поддерживает этот формат.
+
+Подробности:
+- MIME-тип: %1/%2
+- Размер: %3
+</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="773"/>
+ <source># Unsupported Media Type!
+
+Kristall cannot display the requested document.
+
+&gt; To view this media, use the File menu to save it to your local drive, then open the saved file in another program that can display the document for you.
+
+```
+Details:
+- MIME type: %1/%2
+- Size: %3
+```
+</source>
+ <translation># Медиа-тип не поддерживается!
+
+Kristall не может отобразить запрошенный документ.
+
+&gt; Чтобы просмотреть файл, используйте меню Файл чтобы сохранить его на диск, а затем откройте в программе, которая поддерживает этот формат.
+
+```
+Подробности:
+- MIME-тип: %1/%2
+- Размер: %3
+```
+</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="877"/>
+ <source>Site requires input:
+%1</source>
+ <translation>Сайт запрашивает ввод:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="889"/>
+ <source>Your input message is too long. Your input is %1 bytes, but a maximum of %2 bytes are allowed.<byte value="xd"/>
+Please cancel or shorten your input.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="913"/>
+ <source>Too many consecutive redirections. The last redirection would have redirected you to:<byte value="xd"/>
+%1</source>
+ <translation>Слишком много перенаправлений. Последнее перенаправление вело на:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="925"/>
+ <source>The location you visited wants to redirect you to another location:<byte value="xd"/>
+%1<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="933"/>
+ <source>The location you visited wants to redirect you to another host and switch the protocol.<byte value="xd"/>
+Protocol: %1<byte value="xd"/>
+New Host: %2<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="942"/>
+ <source>The location you visited wants to switch the protocol.<byte value="xd"/>
+Protocol: %1<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="950"/>
+ <source>The location you visited wants to redirect you to another host.<byte value="xd"/>
+New Host: %1<byte value="xd"/>
+Do you want to allow the redirection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="964"/>
+ <source>Redirection to %1 cancelled by user</source>
+ <translation>Перенаправление на %1 отменено пользователем</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="978"/>
+ <source>Redirection to %1 failed</source>
+ <translation>Перенаправление на %1 не удалось</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="987"/>
+ <source>An error happened:<byte value="xd"/>
+%0</source>
+ <translation>Произошла ошибка:
+%0</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1066"/>
+ <source>This sites certificate could not be verified! This may be a man-in-the-middle attack on the server to send you malicious content (or the server admin made a configuration mistake).<byte value="xd"/>
+Are you sure you want to continue?</source>
+ <translation>Сертификат данного сайта не удалось проверить! Возможно, это атака man-in-the-middle на данный сервер, чтобы отправить вам вредоносное содержимое (или администратор сайта допустил ошибку в настройке).
+Вы действительно хотите продолжить?</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1083"/>
+ <source>Do you really want to add the server certificate to your list of trusted hosts?<byte value="xd"/>
+Host: %1</source>
+ <translation>Вы действительно хотите добавить сертификат сервера в список доверенных?
+Адрес: %1</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1126"/>
+ <source>This style has no embedded name. Please enter a name for the preset:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1142"/>
+ <source>Do you want to add the style %1 to your collection?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1173"/>
+ <source>The theme %1 was successfully added to your theme collection!</source>
+ <translation>Тема %1 успешно добавлена в коллекцию!</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1185"/>
+ <source>Malicious site detected! This site tries to use the Kristall control scheme!<byte value="xd"/>
+A trustworthy site does not do this!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1211"/>
+ <location filename="../src/browsertab.cpp" line="1710"/>
+ <source>Failed to start system URL handler for<byte value="xd"/>
+%1</source>
+ <translation>Не удалось запустить системный обработчик для
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1216"/>
+ <source>The requested url uses a scheme that has been disabled in the settings:<byte value="xd"/>
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1220"/>
+ <source>The requested url cannot be processed by Kristall:<byte value="xd"/>
+%1</source>
+ <translation>Kristall не может обработать указанный адрес:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1473"/>
+ <source>You currently have a transient session active!<byte value="xd"/>
+If you disable the session, you will not be able to restore it. Continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1527"/>
+ <source>You requested a %1-URL with a client certificate, but these are not supported for this scheme. Continue?</source>
+ <translation>Вы запросили адрес %1 с клиентским сертификатом, но они не поддерживаются для данной схемы. Продолжить?</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1545"/>
+ <source>You want to visit a new host, but have a client certificate enabled. This may be a risk to expose your identity to another host.<byte value="xd"/>
+Do you want to keep the certificate enabled?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1558"/>
+ <source>Your client certificate has a host filter enabled and this site does not match the host filter.<byte value="xd"/>
+New URL: %1<byte value="xd"/>
+Host Filter: %2<byte value="xd"/>
+Do you want to keep the certificate enabled?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1576"/>
+ <source>An automatic client certificate was detected for this site:<byte value="xd"/>
+%1<byte value="xd"/>
+Do you want to enable that certificate?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1647"/>
+ <source>Failed to generate temporary crypto-identitiy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1700"/>
+ <source>Open in new tab</source>
+ <translation>Открыть в новой вкладке</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1706"/>
+ <source>Open with external web browser</source>
+ <translation>Открыть во внешнем браузере</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1715"/>
+ <source>Follow link</source>
+ <translation>Перейти по ссылке</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1719"/>
+ <source>Copy link</source>
+ <translation>Копировать ссылку</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1742"/>
+ <source>Refresh</source>
+ <translation>Обновить</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1749"/>
+ <source>Copy to clipboard</source>
+ <translation>Копировать в буфер обмена</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1754"/>
+ <source>Select all</source>
+ <translation>Выделить всё</translation>
+ </message>
+ <message>
+ <location filename="../src/browsertab.cpp" line="1760"/>
+ <source>View document source</source>
+ <translation>Просмотр источника</translation>
+ </message>
+</context>
+<context>
+ <name>CertificateIoDialog</name>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="22"/>
+ <source>Key Type</source>
+ <translation>Тип ключа</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="39"/>
+ <source>Key File</source>
+ <translation>Файл ключа</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="51"/>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="72"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.ui" line="60"/>
+ <source>Certificate File</source>
+ <translation>Сертификат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="30"/>
+ <source>Export Certificate</source>
+ <translation>Экспорт сертификата</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="32"/>
+ <source>Import Certificate</source>
+ <translation>Импорт сертификата</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="68"/>
+ <location filename="../src/dialogs/certificateiodialog.cpp" line="84"/>
+ <source>Certificate File(*.pem *.der)</source>
+ <translation>Файл сертификата (*.pem *.der)</translation>
+ </message>
+</context>
+<context>
+ <name>CertificateManagementDialog</name>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="14"/>
+ <source>Certificate Manager</source>
+ <translation>Управление сертификатами</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="52"/>
+ <source>Create new certificate</source>
+ <translation>Создать новый сертификат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="55"/>
+ <source>Create...</source>
+ <translation>Создать...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="65"/>
+ <source>Import certificate</source>
+ <translation>Импорт сертификата</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="68"/>
+ <source>Import...</source>
+ <translation>Импорт...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="94"/>
+ <source>Export certificate</source>
+ <translation>Экспорт сертификата</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="97"/>
+ <source>Export...</source>
+ <translation>Экспорт...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="110"/>
+ <source>Delete certificate</source>
+ <translation>Удалить сертификат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="113"/>
+ <source>Delete</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="130"/>
+ <source>Certificate</source>
+ <translation>Сертификат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="138"/>
+ <source>Display Name</source>
+ <translation>Отображаемое имя</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="148"/>
+ <source>Common Name</source>
+ <translation>Общее имя</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="162"/>
+ <source>Expiration Date</source>
+ <translation>Истекает</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="179"/>
+ <source>Expires in</source>
+ <translation>Истекает через</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="189"/>
+ <source>??? days</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="196"/>
+ <source>Fingerprint</source>
+ <translation>Отпечаток</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="203"/>
+ <source>Notes</source>
+ <translation>Примечания</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="220"/>
+ <source>Host Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="227"/>
+ <source>gemini://*</source>
+ <translation>gemini://*</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="234"/>
+ <source>If this is checked, Kristall will automatically enable this certificate when visiting a URL matching the host filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.ui" line="237"/>
+ <source>Auto-Enable Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="65"/>
+ <source>%1 day</source>
+ <comment>%1 days</comment>
+ <translation>
+ <numerusform>%1 день</numerusform>
+ <numerusform>%1 дня</numerusform>
+ <numerusform>%1 дней</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="117"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="125"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="132"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="139"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="161"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="177"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="189"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="205"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="226"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="236"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="263"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="272"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="281"/>
+ <source>Kristall</source>
+ <translation>Kristall</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="118"/>
+ <source>Do you really want to delete this certificate?<byte value="xd"/>
+<byte value="xd"/>
+You will not be able to restore the identity after this!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="125"/>
+ <source>Could not destroy identity!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="133"/>
+ <source>Do you want to delete the group &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="139"/>
+ <source>Could not delete group!</source>
+ <translation>Не удалось удалить группу!</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="162"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="190"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="227"/>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="237"/>
+ <source>The file %1 could not be found!</source>
+ <translation>Файл %1 не найден!</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="178"/>
+ <source>The file %1 could not be created found!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="206"/>
+ <source>The file %1 could not be created!</source>
+ <translation>Не удалось создать файл %1!</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="253"/>
+ <source>Imported from:<byte value="xd"/>
+key: %1<byte value="xd"/>
+:cert: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="255"/>
+ <source>Imported Certificate</source>
+ <extracomment>Default name</extracomment>
+ <translation>Импортированный сертификат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="264"/>
+ <source>The key file %1 could not be loaded. Please verify your key file.</source>
+ <translation>Не удалось загрузить файл ключа %1. Проверьте его.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="273"/>
+ <source>The certificate file %1 could not be loaded. Please verify your certificate.</source>
+ <translation>Не удалось загрузить файл сертификата %1. Проверьте его.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="278"/>
+ <source>Imported Certificates</source>
+ <translation>Импортированные сертификаты</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificatemanagementdialog.cpp" line="282"/>
+ <source>Failed to import the certificate.</source>
+ <translation>Не удалось импортировать сертификат.</translation>
+ </message>
+</context>
+<context>
+ <name>CertificateSelectionDialog</name>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="14"/>
+ <source>Select client certificate</source>
+ <translation>Выбор сертификата клиента</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="23"/>
+ <source>Select existing certificate:</source>
+ <translation>Выбрать существующий:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="36"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="55"/>
+ <source>Create new identity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="82"/>
+ <source>Use</source>
+ <translation>Использовать</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="98"/>
+ <source>Create transient session certificate:</source>
+ <translation>Создать временный сертификат сеанса:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="107"/>
+ <source>30 Minutes</source>
+ <translation>30 минут</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="114"/>
+ <source>1 Hour</source>
+ <translation>1 час</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="121"/>
+ <source>12 Hours</source>
+ <translation>12 часов</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="128"/>
+ <source>24 Hours</source>
+ <translation>24 часа</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/certificateselectiondialog.ui" line="135"/>
+ <source>48 Hours</source>
+ <translation>48 часов</translation>
+ </message>
+</context>
+<context>
+ <name>FavouriteCollection</name>
+ <message>
+ <location filename="../src/favouritecollection.cpp" line="472"/>
+ <source>Unsorted</source>
+ <translation>Неотсортированное</translation>
+ </message>
+</context>
+<context>
+ <name>FavouritePopup</name>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="21"/>
+ <source>Title:</source>
+ <translation>Название:</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="27"/>
+ <source>Group:</source>
+ <translation>Группа:</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="45"/>
+ <source>Unfavourite</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/favouritepopup.cpp" line="53"/>
+ <source>Confirm</source>
+ <translation>Подтвердить</translation>
+ </message>
+</context>
+<context>
+ <name>GopherClient</name>
+ <message>
+ <location filename="../src/protocols/gopherclient.cpp" line="56"/>
+ <source>Search:</source>
+ <translation>Поиск:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../src/mainwindow.ui" line="14"/>
+ <source>Kristall Browser</source>
+ <translation>Браузер Kristal</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="65"/>
+ <source>Document Outline</source>
+ <translation>Структура документа</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="68"/>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="106"/>
+ <source>Favourites</source>
+ <translation>Избранное</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="109"/>
+ <source>Ctrl+B</source>
+ <translation>Ctrl+B</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="150"/>
+ <source>History</source>
+ <translation>Журнал</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="153"/>
+ <source>Ctrl+H</source>
+ <translation>Ctrl+H</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="189"/>
+ <source>File</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="205"/>
+ <location filename="../src/mainwindow.ui" line="418"/>
+ <source>Help</source>
+ <translation>Справка</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="215"/>
+ <source>View</source>
+ <translation>Вид</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="222"/>
+ <source>Navigation</source>
+ <translation>Обзор</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="245"/>
+ <source>About...</source>
+ <translation>О программе...</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="254"/>
+ <source>Quit</source>
+ <translation>Выход</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="257"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="262"/>
+ <source>New Tab</source>
+ <translation>Новая вкладка</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="265"/>
+ <source>Ctrl+T</source>
+ <translation>Ctrl+T</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="274"/>
+ <source>Close Tab</source>
+ <translation>Закрыть вкладку</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="277"/>
+ <source>Ctrl+W</source>
+ <translation>Ctrl+W</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="286"/>
+ <source>Settings</source>
+ <translation>Настройки</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="289"/>
+ <source>Ctrl+,</source>
+ <translation>Ctrl+,</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="298"/>
+ <location filename="../src/mainwindow.ui" line="301"/>
+ <source>Back</source>
+ <translation>Назад</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="304"/>
+ <source>Alt+Left</source>
+ <translation>Alt+влево</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="313"/>
+ <location filename="../src/mainwindow.ui" line="316"/>
+ <source>Forward</source>
+ <translation>Вперёд</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="319"/>
+ <source>Alt+Right</source>
+ <translation>Alt+вправо</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="328"/>
+ <source>Root</source>
+ <translation>В корень</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="331"/>
+ <source>Go to the root directory (/)</source>
+ <translation>В корневой каталог (/)</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="334"/>
+ <source>Alt+/</source>
+ <translation>Alt+/</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="343"/>
+ <source>Parent</source>
+ <translation>Наверх</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="346"/>
+ <source>Go to the parent directory</source>
+ <translation>Перейти в родительский каталог</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="349"/>
+ <source>Alt+Up</source>
+ <translation>Alt+вверх</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="358"/>
+ <source>Refresh</source>
+ <translation>Обновить</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="361"/>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="370"/>
+ <source>About Qt...</source>
+ <translation>О Qt...</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="379"/>
+ <source>Save as...</source>
+ <translation>Сохранить как...</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="382"/>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="394"/>
+ <source>Add to favourites</source>
+ <translation>Добавить в Избранное</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="397"/>
+ <source>Ctrl+D</source>
+ <translation>Ctrl+D</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="406"/>
+ <source>Go to home</source>
+ <translation>Домой</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="409"/>
+ <source>Alt+Home</source>
+ <translation>Alt+Home</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="421"/>
+ <source>F1</source>
+ <translation>F1</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="430"/>
+ <source>Changelog</source>
+ <translation>Журнал изменений</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="439"/>
+ <source>Manage Certificates…</source>
+ <translation>Управление сертификатами...</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="444"/>
+ <source>View document source</source>
+ <translation>Просмотр источника</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="447"/>
+ <source>Ctrl+U</source>
+ <translation>Ctrl+U</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="452"/>
+ <source>New Window</source>
+ <translation>Новое окно</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="455"/>
+ <source>Opens a new window</source>
+ <translation>Открыть новое окно</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="458"/>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="463"/>
+ <source>Close Window</source>
+ <translation>Закрыть окно</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.ui" line="466"/>
+ <source>Alt+F4</source>
+ <translation>Alt+F4</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="272"/>
+ <source>Enter name of the new group:</source>
+ <translation>Название новой группы:</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="467"/>
+ <location filename="../src/mainwindow.cpp" line="565"/>
+ <location filename="../src/mainwindow.cpp" line="714"/>
+ <location filename="../src/mainwindow.cpp" line="722"/>
+ <source>Kristall</source>
+ <translation>Kristall</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="468"/>
+ <source>Kristall, an OpenSource Gemini browser.
+Made by Felix &quot;xq&quot; Queißner
+
+This is free software. You can get the source code at
+https://github.com/MasterQ32/Kristall</source>
+ <translation>Kristall, открытый Gemini-браузер.
+Создан Феликсом &quot;xq&quot; Кюснером
+
+Это свободное программное обеспечение. Исходный код:
+https://github.com/MasterQ32/Kristall</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="533"/>
+ <source>(cached)</source>
+ <translation>(в кэше)</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="535"/>
+ <source>%1 ms</source>
+ <translation>%1 мс</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="632"/>
+ <location filename="../src/mainwindow.cpp" line="655"/>
+ <source>Open here</source>
+ <translation>Открыть здесь</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="637"/>
+ <location filename="../src/mainwindow.cpp" line="660"/>
+ <source>Open in new tab</source>
+ <translation>Открыть в новой вкладке</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="666"/>
+ <source>Relocate</source>
+ <translation>Переместить</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="670"/>
+ <source>Enter new location of this favourite:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="679"/>
+ <source>Rename</source>
+ <translation>Переименовать</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="683"/>
+ <source>New name of this favourite:</source>
+ <translation>Новое название элемента:</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="694"/>
+ <source>Delete</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="703"/>
+ <source>Rename group</source>
+ <translation>Переименовать группу</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="707"/>
+ <source>New name of this group:</source>
+ <translation>Новое название группы:</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="714"/>
+ <source>Rename failed: group name already in use.</source>
+ <translation>Невозможно переименовать: название группы уже используется.</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="719"/>
+ <source>Delete group</source>
+ <translation>Удалить группу</translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="723"/>
+ <source>Are you sure you want to delete this Favourite Group?
+All favourites in this group will be lost.
+
+This action cannot be undone!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mainwindow.cpp" line="739"/>
+ <source>Create new group...</source>
+ <translation>Создать группу...</translation>
+ </message>
+</context>
+<context>
+ <name>MediaPlayer</name>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="25"/>
+ <source>Click to play/pause</source>
+ <translation>Пауза/воспроизведение</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="28"/>
+ <location filename="../src/widgets/mediaplayer.ui" line="58"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="45"/>
+ <source>00:00:00</source>
+ <translation>00:00:00</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/mediaplayer.ui" line="55"/>
+ <source>Mute/unmute audio</source>
+ <translation>Вкл/выкл звук</translation>
+ </message>
+</context>
+<context>
+ <name>NewIdentitiyDialog</name>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="14"/>
+ <source>Create new certificate</source>
+ <translation>Новый сертификат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="25"/>
+ <source>Display Name</source>
+ <translation>Отображаемое имя</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="32"/>
+ <source>Expiration Date</source>
+ <translation>Истекает</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="48"/>
+ <source>Common Name</source>
+ <translation>Общее имя</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/newidentitiydialog.ui" line="55"/>
+ <source>Group</source>
+ <translation>Группа</translation>
+ </message>
+</context>
+<context>
+ <name>QApplication</name>
+ <message>
+ <location filename="../src/main.cpp" line="416"/>
+ <source>Opens the provided links in a new window instead of tabs.</source>
+ <translation>Открыть адреса в новых окнах вместо вкладок.</translation>
+ </message>
+ <message>
+ <location filename="../src/main.cpp" line="421"/>
+ <source>Starts the instance of kristall as a isolated session that cannot communicate with other windows.</source>
+ <translation>Запустить экземпляр kristall, изолированный от других окон.</translation>
+ </message>
+ <message>
+ <location filename="../src/main.cpp" line="429"/>
+ <source>The urls that should be opened instead of the start page</source>
+ <translation>Адреса для открытия</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../src/main.cpp" line="615"/>
+ <source>Unsorted</source>
+ <translation>Неотсортированное</translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="21"/>
+ <source>%1 B</source>
+ <translation>%1 Б</translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>KB</source>
+ <translation>КБ</translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>MB</source>
+ <translation>ГБ</translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>GB</source>
+ <translation>ГБ</translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="25"/>
+ <source>TB</source>
+ <translation>ТБ</translation>
+ </message>
+ <message>
+ <location filename="../src/ioutil.cpp" line="28"/>
+ <source>B</source>
+ <translation>Б</translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="31"/>
+ <source>Host Name</source>
+ <translation>Имя компьютера</translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="32"/>
+ <source>First Seen</source>
+ <translation>Впервые встречен</translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="33"/>
+ <source>Key Type</source>
+ <translation>Тип ключа</translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="74"/>
+ <source>Opaque</source>
+ <translation>Скрыто</translation>
+ </message>
+ <message>
+ <location filename="../src/trustedhostcollection.cpp" line="75"/>
+ <source>Unforseen</source>
+ <translation>Неизвестно</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation>Настройки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="32"/>
+ <source>Generic</source>
+ <translation>Общие</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="38"/>
+ <source>UI Theme</source>
+ <translation>Тема интерфейса:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="48"/>
+ <source>Icon Theme</source>
+ <translation>Тема значков:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="58"/>
+ <source>UI Density</source>
+ <translation>Плотность интерфейса:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="69"/>
+ <source>Start Page:</source>
+ <translation>Начальная страница:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="76"/>
+ <source>about://blank</source>
+ <translation>about://blank</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="83"/>
+ <source>Search engine:</source>
+ <translation>Поисковой движок:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="97"/>
+ <source>Enabled Protocols</source>
+ <translation>Разрешенные протоколы</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="106"/>
+ <source>Gemini</source>
+ <translation>Gemini</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="116"/>
+ <source>Gopher</source>
+ <translation>Gopher</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="126"/>
+ <source>Finger</source>
+ <translation>Finger</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="133"/>
+ <source>HTTP</source>
+ <translation>HTTP</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="140"/>
+ <source>HTTPS</source>
+ <translation>HTTPS</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="149"/>
+ <source>Text Rendering</source>
+ <translation>Отображение текста</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="158"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="322"/>
+ <source>Fancy</source>
+ <translation>Форматированный</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="171"/>
+ <source>Always plain text</source>
+ <translation>Простой текст</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="183"/>
+ <source>Enable text highlights</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="192"/>
+ <source>On (Experimental)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="202"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="366"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="400"/>
+ <source>Off</source>
+ <translation>Выкл</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="217"/>
+ <source>Gopher Map</source>
+ <translation>Схема Gopher</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="226"/>
+ <source>Use icons</source>
+ <translation>Значки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="239"/>
+ <source>Use text only</source>
+ <translation>Только текст</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="251"/>
+ <source>Unknown Scheme</source>
+ <translation>Неизвестные схемы</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="260"/>
+ <source>Use OS default handler</source>
+ <translation>Открывать через ОС</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="270"/>
+ <source>Display error message</source>
+ <translation>Отображать ошибку</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="282"/>
+ <source>Hidden files in file:// directories</source>
+ <translation>Скрытые файлы в каталогах</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="291"/>
+ <source>Show</source>
+ <translation>Показать</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="301"/>
+ <source>Hide</source>
+ <translation>Скрыть</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="313"/>
+ <source>URL bar highlights</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="332"/>
+ <source>None</source>
+ <translation>Нет</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="344"/>
+ <source>Use typographer&apos;s quotes</source>
+ <translation>Фигурные кавычки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="347"/>
+ <source>Replace single and double quotes with curly typographer quotes.</source>
+ <translation>Заменять двойные и одинарные кавычки типографскими.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="356"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="390"/>
+ <source>On</source>
+ <translation>Вкл</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="378"/>
+ <source>Render emojis</source>
+ <translation>Отображать эмодзи</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="381"/>
+ <source>Whether to render emojis in a page.</source>
+ <translation>Отображение эмодзи на страницах.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="412"/>
+ <source>Max. Number of Redirections</source>
+ <translation>Макс. кол-во перенаправлений</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="426"/>
+ <source>Redirection Handling</source>
+ <translation>Обработка перенаправлений</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="436"/>
+ <source>Network Timeout</source>
+ <translation>Время ожидания сети</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="443"/>
+ <source> ms</source>
+ <translation> мс</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="456"/>
+ <source>Additional toolbar buttons</source>
+ <translation>Дополнительные кнопки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="465"/>
+ <source>Home</source>
+ <translation>Домой</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="472"/>
+ <source>New tab</source>
+ <translation>Новая вкладка</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="479"/>
+ <source>Root (/)</source>
+ <translation>В корень (/)</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="486"/>
+ <source>Parent (..)</source>
+ <translation>Наверх (..)</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="495"/>
+ <source>Total cache size limit</source>
+ <translation>Общий размер кэша</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="498"/>
+ <source>The total amount of memory that can be occupied by cached items. Set to zero to disable in-memory caching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="505"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="529"/>
+ <source> KiB</source>
+ <translation> КиБ</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="519"/>
+ <source>Cached item size threshold</source>
+ <translation>Предел кэшируемого элемента</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="522"/>
+ <source>Items which are below this threshold are cached in memory. Any above are simply discarded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="543"/>
+ <source>Cached item life</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="546"/>
+ <source>How long cached items last before they are expired and require a reload.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="555"/>
+ <source> minutes</source>
+ <translation> мин.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="568"/>
+ <source>Unlimited item life</source>
+ <translation>Неограниченно</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="571"/>
+ <source>Sets cached items to be unexpirable. Items will only be removed if the cache is full.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="586"/>
+ <source>Style</source>
+ <translation>Начертание</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="637"/>
+ <source>Background Color</source>
+ <translation>Цвет фона</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="644"/>
+ <source>Standard Font</source>
+ <translation>Обычный шрифт</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="656"/>
+ <source>This text will be displayed for normal text.</source>
+ <translation>Это образец обычного текста.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="687"/>
+ <source>Preformatted Font</source>
+ <translation>Моноширинный шрифт</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="699"/>
+ <source>This text will be displayed for preformatted text.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="730"/>
+ <source>H1 Font</source>
+ <translation>Шрифт для H1</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="742"/>
+ <source>This text will be displayed for a level 1 heading.</source>
+ <translation>Это образец заголовка 1-го уровня.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="773"/>
+ <source>H2 Font</source>
+ <translation>Шрифт для H2</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="785"/>
+ <source>This text will be displayed for a level 2 heading.</source>
+ <translation>Это образец заголовка 2-го уровня.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="817"/>
+ <source>H3 Font</source>
+ <translation>Шрифт для H3</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="832"/>
+ <source>This text will be displayed for a level 3 heading.</source>
+ <translation>Это образец заголовка 3-го уровня.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="867"/>
+ <source>Blockquote font</source>
+ <translation>Шрифт цитат</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="882"/>
+ <source>This font will be used in blockquotes.</source>
+ <translation>Это образец текста цитаты.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="917"/>
+ <source>Local Link Color</source>
+ <translation>Цвет внутренних ссылок</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="924"/>
+ <source>Foreign Link Color</source>
+ <translation>Цвет внешних ссылок</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="931"/>
+ <source>Cross-Scheme-Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="938"/>
+ <source>Local Link Prefix</source>
+ <translation>Префикс внутр. ссылок</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="945"/>
+ <source>Extern Link Prefix</source>
+ <translation>Префикс внешн. ссылок</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="952"/>
+ <source>⇒ </source>
+ <translation>⇒ </translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="959"/>
+ <source>→ </source>
+ <translation>→ </translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="968"/>
+ <source>This is a local reference</source>
+ <translation>Внутренняя ссылка</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="993"/>
+ <source>This is a foreign reference</source>
+ <translation>Внешняя ссылка</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1018"/>
+ <source>This reference is cross-scheme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1041"/>
+ <source>Auto-Theme Generation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1052"/>
+ <source>Left/right Page Margin</source>
+ <translation>Отступ слева/справа</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1059"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1080"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1147"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1174"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1195"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1313"/>
+ <source> px</source>
+ <translation> пикс</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1073"/>
+ <source>Top/bottom Page Margin</source>
+ <translation>Отступ сверху/снизу</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1094"/>
+ <source>Other options</source>
+ <translation>Прочее</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1103"/>
+ <source>Justify text</source>
+ <translation>Выравнивание по ширине</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1106"/>
+ <source>Justify text on the page, instead of left-aligning it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1113"/>
+ <source>Centre first H1 </source>
+ <translation>Центрировать первый H1</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1116"/>
+ <source>Whether to centre the first top-level heading in the document.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1126"/>
+ <source>Text width limit</source>
+ <translation>Предел ширины текста</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1129"/>
+ <source>Preferred width of formatted text on the page.</source>
+ <translation>Предпочтительная ширина форматированного текста.</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1154"/>
+ <source>Enabled</source>
+ <translation>Задействовать</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1157"/>
+ <source>Whether to limit the width of formatted text on the page or not.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1167"/>
+ <source>Line height (paragraph)</source>
+ <translation>Высота строки (абзац)</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1188"/>
+ <source>Line height (header)</source>
+ <translation>Высота строки (заголовок)</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1209"/>
+ <source>Indentation</source>
+ <translation>Отступы</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1219"/>
+ <source>Par:</source>
+ <translation>Абз:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1240"/>
+ <source>Hea:</source>
+ <translation>Заг:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1261"/>
+ <source>Quo:</source>
+ <translation>Цит:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1282"/>
+ <source>Lst:</source>
+ <translation>Спис:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1306"/>
+ <source>Indent size</source>
+ <translation>Размер отступа</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1327"/>
+ <source>List item marker</source>
+ <translation>Маркер списка</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1338"/>
+ <source>Block Quote Background</source>
+ <translation>Фон цитаты</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1354"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1391"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1404"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1417"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1434"/>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1447"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1376"/>
+ <source>Presets</source>
+ <translation>Настройки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1388"/>
+ <source>Save as new preset</source>
+ <translation>Сохранить настройки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1401"/>
+ <source>Override current preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1414"/>
+ <source>Load preset</source>
+ <translation>Загрузить настройки</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1428"/>
+ <source>Imports preset…</source>
+ <translation>Импорт настроек...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1444"/>
+ <source>Export preset…</source>
+ <translation>Экспорт настроек...</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1472"/>
+ <source>host.name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1485"/>
+ <source>Gemini TLS</source>
+ <translation>TLS Gemini</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.ui" line="1498"/>
+ <source>HTTPS TLS</source>
+ <translation>TLS HTTPS</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="29"/>
+ <source>Disabled</source>
+ <translation>Отключено</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="30"/>
+ <source>Dark Theme</source>
+ <translation>Темная тема</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="31"/>
+ <source>Light Theme</source>
+ <translation>Светлая тема</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="34"/>
+ <source>OS Default</source>
+ <translation>По умолчанию ОС</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="35"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="40"/>
+ <source>Light</source>
+ <translation>Светлая</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="36"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="41"/>
+ <source>Dark</source>
+ <translation>Темная</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="39"/>
+ <source>Automatic</source>
+ <translation>Автоматически</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="44"/>
+ <source>Compact</source>
+ <translation>Компактнай</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="45"/>
+ <source>Classic</source>
+ <translation>Классический</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="48"/>
+ <source>Filled circle</source>
+ <translation>Заполненый кружок</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="49"/>
+ <source>Circle</source>
+ <translation>Кружок</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="50"/>
+ <source>Square</source>
+ <translation>Квадратик</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="83"/>
+ <source>Ask for cross-scheme or cross-host redirection</source>
+ <translation>Подтверждать между схемами или сайтами</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="84"/>
+ <source>Ask for cross-scheme redirection</source>
+ <translation>Подтверждать между схемами</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="85"/>
+ <source>Ask for cross-host redirection</source>
+ <translation>Подтверждать между сайтами</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="86"/>
+ <source>Ask for all redirection</source>
+ <translation>Подтверждать все</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="87"/>
+ <source>Silently redirect everything</source>
+ <translation>Переходить без подтверждения</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="263"/>
+ <source>URL with &apos;%1&apos; in place of query</source>
+ <translation>Адрес с %1 на месте запроса</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="320"/>
+ <source> (not supported in this build)</source>
+ <translation> (не поддерживается в этой сборке)</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="618"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="718"/>
+ <source>Save</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="619"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="719"/>
+ <source>Cancel</source>
+ <translation>Отмена</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="620"/>
+ <source>Enter the name of your new preset:</source>
+ <translation>Название новых настроек:</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="629"/>
+ <source>A style with the name &apos;%1&apos; already exists! Replace?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="649"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="729"/>
+ <source>Do you want to override the style &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="663"/>
+ <source>Do you want to load the style &apos;%1&apos;?<byte value="xd"/>
+This will discard all currently set up values!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="701"/>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="754"/>
+ <source>Kristall Theme (*.kthm)</source>
+ <translation>Тема Kristall (*.kthm)</translation>
+ </message>
+ <message>
+ <location filename="../src/dialogs/settingsdialog.cpp" line="720"/>
+ <source>Imported preset has no name.<byte value="xd"/>
+Please enter a name for the preset:</source>
+ <translation>Импортированные настройки не имеют названия.
+Введите название настроек:</translation>
+ </message>
+</context>
+<context>
+ <name>SslTrustEditor</name>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="20"/>
+ <source>Trust Level</source>
+ <translation>Уровень доверия</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="30"/>
+ <source>Certificate Authorities</source>
+ <translation>Центры сертификации</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="39"/>
+ <source>Use local certificate authorities</source>
+ <translation>Использовать локальные</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="46"/>
+ <source>Don&apos;t use local certificate authorities</source>
+ <translation>Не использовать локальные</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="55"/>
+ <source>Trusted Hosts</source>
+ <translation>Доверенные адреса</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/ssltrusteditor.ui" line="79"/>
+ <source>Revoke trust</source>
+ <translation>Отозвать доверие</translation>
+ </message>
+</context>
+</TS>