1
mirror of https://invent.kde.org/network/falkon.git synced 2024-11-11 01:22:10 +01:00

Updated Georgian translation + fixed plugin system loading.

This commit is contained in:
nowrep 2012-04-04 21:12:52 +02:00
parent 9778773199
commit f94e69d557
24 changed files with 284 additions and 103 deletions

View File

@ -45,10 +45,16 @@ Then you can start compiling by running this commands:
After a successful compilation the executable binary can be found in the bin/ directory.
To install QupZilla, you will have to run this command: (it may be necessary to run it as root)
On Linux/Unix: To install QupZilla, you will have to run this command: (it may be necessary to run it as root)
$ make install
On Mac OS X: To deploy QupZilla in bundle, run this command:
$ cd scripts && ./macdeploy.sh full-path-to-macdeployqt
You need to specify path to `macdeployqt` only if it is not in PATH.
Current version
----------------------------------------------------------------------------------------

28
scripts/macdeploy.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
COMMAND=$1
if [ $COMMAND = "" ]; then
$COMMAND="macdeployqt"
fi
# cd to directory with bundle
cd ../build
# copy libQupZilla into bundle
cp libQupZilla* QupZilla.app/Contents/MacOS/QupZilla
# copy all plugins into bundle
test -d QupZilla.app/Contents/Resources/plugins || mkdir QupZilla.app/Contents/Resources/plugins
cp plugins/*.dylib QupZilla.app/Contents/Resources/plugins
# fix libQupZilla
install_name_tool -change libQupZilla.1.dylib @executable_path/libQupZilla.1.dylib QupZilla.app/Contents/MacOS/QupZilla
# fix plugins
for plugin in QupZilla.app/Contents/Resources/plugins*.dylib
do
install_name_tool -change libQupZilla.1.dylib @executable_path/libQupZilla.1.dylib $plugin
done
# run macdeployqt
$COMMAND QupZilla.app

View File

@ -91,7 +91,6 @@ MainApplication::MainApplication(int &argc, char** argv)
, m_networkmanager(0)
, m_cookiejar(0)
, m_rssmanager(0)
, m_plugins(0)
, m_bookmarksModel(0)
, m_downloadManager(0)
, m_autofill(0)
@ -238,8 +237,10 @@ MainApplication::MainApplication(int &argc, char** argv)
loadSettings();
networkManager()->loadCertificates();
m_plugins = new PluginProxy;
if (!noAddons) {
plugins()->loadPlugins();
m_plugins->loadPlugins();
}
if (checkUpdates) {
@ -644,14 +645,6 @@ BrowsingLibrary* MainApplication::browsingLibrary()
return m_browsingLibrary;
}
PluginProxy* MainApplication::plugins()
{
if (!m_plugins) {
m_plugins = new PluginProxy();
}
return m_plugins;
}
CookieManager* MainApplication::cookieManager()
{
if (!m_cookiemanager) {
@ -701,6 +694,11 @@ RSSManager* MainApplication::rssManager()
return m_rssmanager;
}
PluginProxy* MainApplication::plugins()
{
return m_plugins;
}
BookmarksModel* MainApplication::bookmarksModel()
{
if (!m_bookmarksModel) {

View File

@ -79,7 +79,7 @@
#include <QWebHistory>
#include <QMessageBox>
const QString QupZilla::VERSION = "1.2.0";
const QString QupZilla::VERSION = "1.1.8";
const QString QupZilla::BUILDTIME = __DATE__" "__TIME__;
const QString QupZilla::AUTHOR = "David Rosca";
const QString QupZilla::COPYRIGHT = "2010-2012";
@ -88,7 +88,7 @@ const QString QupZilla::WIKIADDRESS = "https://github.com/nowrep/QupZilla/wiki";
const QString QupZilla::WEBKITVERSION = qWebKitVersion();
QupZilla::QupZilla(Qz::BrowserWindow type, QUrl startUrl)
: QMainWindow(0)
: QMainWindow()
, m_historyMenuChanged(true)
, m_bookmarksMenuChanged(true)
, m_isClosing(false)

View File

@ -23,12 +23,10 @@ QSettings* Settings::m_settings = 0;
Settings::Settings()
{
#ifdef QT_DEBUG
if (!m_settings->group().isEmpty()) {
qWarning("Settings: Creating object with opened group!");
qDebug("Settings: Creating object with opened group!");
m_settings->endGroup();
}
#endif
}
void Settings::createSettings(const QString &fileName)
@ -68,10 +66,8 @@ QSettings* Settings::globalSettings()
Settings::~Settings()
{
#ifdef QT_DEBUG
if (!m_settings->group().isEmpty()) {
qWarning("Settings: Deleting object with opened group!");
qDebug("Settings: Deleting object with opened group!");
m_settings->endGroup();
}
#endif
}

View File

@ -363,11 +363,6 @@ RESOURCES += \
INSTALLS += target
}
mac {
target.path = Contents/MacOS
QMAKE_BUNDLE_DATA += target
}
message(========== Building libqupzilla ==========)
message( Using following defines:)
message($$DEFINES)

View File

@ -25,18 +25,7 @@
PluginProxy::PluginProxy()
: Plugins()
{
}
void PluginProxy::unloadPlugin(Plugins::Plugin* plugin)
{
m_mousePressHandlers.removeOne(plugin->instance);
m_mouseReleaseHandlers.removeOne(plugin->instance);
m_mouseMoveHandlers.removeOne(plugin->instance);
m_keyPressHandlers.removeOne(plugin->instance);
m_keyReleaseHandlers.removeOne(plugin->instance);
Plugins::unloadPlugin(plugin);
connect(this, SIGNAL(pluginUnloaded(PluginInterface*)), this, SLOT(pluginUnloaded(PluginInterface*)));
}
void PluginProxy::registerAppEventHandler(const PluginProxy::EventHandlerType &type, PluginInterface* obj)
@ -90,6 +79,16 @@ void PluginProxy::registerAppEventHandler(const PluginProxy::EventHandlerType &t
}
}
void PluginProxy::pluginUnloaded(PluginInterface* plugin)
{
m_mousePressHandlers.removeOne(plugin);
m_mouseReleaseHandlers.removeOne(plugin);
m_mouseMoveHandlers.removeOne(plugin);
m_keyPressHandlers.removeOne(plugin);
m_keyReleaseHandlers.removeOne(plugin);
}
void PluginProxy::populateWebViewMenu(QMenu* menu, WebView* view, const QWebHitTestResult &r)
{
if (!menu || !view) {

View File

@ -35,7 +35,6 @@ public:
explicit PluginProxy();
void unloadPlugin(Plugin* plugin);
void registerAppEventHandler(const EventHandlerType &type, PluginInterface* obj);
void populateWebViewMenu(QMenu* menu, WebView* view, const QWebHitTestResult &r);
@ -63,6 +62,9 @@ signals:
void mainWindowCreated(QupZilla* window);
void mainWindowDeleted(QupZilla* window);
private slots:
void pluginUnloaded(PluginInterface* plugin);
private:
QList<PluginInterface*> m_mouseDoubleClickHandlers;
QList<PluginInterface*> m_mousePressHandlers;

View File

@ -75,6 +75,7 @@ void Plugins::unloadPlugin(Plugins::Plugin* plugin)
plugin->instance->unload();
plugin->pluginLoader->unload();
emit pluginUnloaded(plugin->instance);
m_availablePlugins.removeOne(*plugin);
plugin->instance = 0;
@ -134,13 +135,13 @@ void Plugins::loadPlugins()
plugin.fullPath = fullPath;
plugin.pluginLoader = loader;
plugin.instance = initPlugin(iPlugin, loader);
plugin.pluginSpec = iPlugin->pluginSpec();
if (plugin.isLoaded()) {
m_loadedPlugins.append(plugin.instance);
}
plugin.pluginSpec = iPlugin->pluginSpec();
m_availablePlugins.append(plugin);
m_loadedPlugins.append(plugin.instance);
m_availablePlugins.append(plugin);
}
}
refreshLoadedPlugins();
@ -205,10 +206,14 @@ PluginInterface* Plugins::initPlugin(PluginInterface* interface, QPluginLoader*
if (!interface->testPlugin()) {
interface->unload();
loader->unload();
emit pluginUnloaded(interface);
return 0;
}
qApp->installTranslator(interface->getTranslator(mApp->currentLanguage()));
return interface;
}

View File

@ -40,6 +40,11 @@ public:
QPluginLoader* pluginLoader;
PluginInterface* instance;
Plugin() {
pluginLoader = 0;
instance = 0;
}
bool isLoaded() const {
return instance;
}
@ -78,6 +83,9 @@ public slots:
protected:
QList<PluginInterface*> m_loadedPlugins;
signals:
void pluginUnloaded(PluginInterface* plugin);
private:
PluginInterface* initPlugin(PluginInterface* interface, QPluginLoader* loader);

View File

@ -143,6 +143,7 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent)
if (actProfileName == name) {
continue;
}
ui->startProfile->addItem(name);
}
connect(ui->createProfile, SIGNAL(clicked()), this, SLOT(createProfile()));

View File

@ -54,7 +54,7 @@
QString WebPage::m_lastUploadLocation = QDir::homePath();
QString WebPage::m_userAgent;
QString WebPage::m_fakeUserAgent = "Mozilla/5.0 (" + qz_buildSystem() + ") AppleWebKit/" + qWebKitVersion() + " (KHTML, like Gecko) Chrome/10.0 Safari/" + qWebKitVersion();
QString WebPage::m_fakeUserAgent = "Mozilla/5.0 (" + qz_buildSystem() + ") AppleWebKit/" + QupZilla::WEBKITVERSION + " (KHTML, like Gecko) Chrome/10.0 Safari/" + QupZilla::WEBKITVERSION;
QUrl WebPage::m_lastUnsupportedUrl;
QList<WebPage*> WebPage::m_livingPages;

View File

@ -43,11 +43,6 @@ UI_DIR = build
INSTALLS += target
}
mac {
target.path = Contents/MacOS/qupzilla
QMAKE_BUNDLE_DATA += target
}
updateqm.input = TRANSLATIONS
updateqm.output = locale/${QMAKE_FILE_BASE}.qm
updateqm.commands = $$QMAKE_LRELEASE -silent ${QMAKE_FILE_IN} -qm locale/${QMAKE_FILE_BASE}.qm

View File

@ -25,6 +25,7 @@ TRANSLATIONS = \
translations/id_ID.ts \
translations/it_IT.ts \
translations/ja_JP.ts \
translations/ka_GE.ts \
translations/nl_NL.ts \
translations/pt_PT.ts \
translations/ro_RO.ts \

View File

@ -10,6 +10,7 @@
<file>locale/id_ID.qm</file>
<file>locale/it_IT.qm</file>
<file>locale/ja_JP.qm</file>
<file>locale/ka_GE.qm</file>
<file>locale/nl_NL.qm</file>
<file>locale/pt_PT.qm</file>
<file>locale/ro_RO.qm</file>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ka_GE">
<context>
<name>AKN_Settings</name>
<message>
<location filename="../akn_settings.ui" line="14"/>
<source>Access Keys Navigation</source>
<translation> </translation>
</message>
<message>
<location filename="../akn_settings.ui" line="20"/>
<source>&lt;h1&gt;Access Keys Navigation&lt;/h1&gt;</source>
<translation>&lt;h1&gt; &lt;/h1&gt;</translation>
</message>
<message>
<location filename="../akn_settings.ui" line="33"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../akn_settings.ui" line="38"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../akn_settings.ui" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../akn_settings.ui" line="51"/>
<source>Double press</source>
<translation> </translation>
</message>
<message>
<location filename="../akn_settings.ui" line="58"/>
<source>Key for showing access keys:</source>
<translation> :</translation>
</message>
<message>
<location filename="../akn_settings.ui" line="103"/>
<source>License</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -33,6 +33,7 @@ TRANSLATIONS = \
translations/id_ID.ts \
translations/it_IT.ts \
translations/ja_JP.ts \
translations/ka_GE.ts \
translations/nl_NL.ts \
translations/pt_PT.ts \
translations/ro_RO.ts \

View File

@ -20,6 +20,7 @@
<file>locale/id_ID.qm</file>
<file>locale/it_IT.qm</file>
<file>locale/ja_JP.qm</file>
<file>locale/ka_GE.qm</file>
<file>locale/nl_NL.qm</file>
<file>locale/pt_PT.qm</file>
<file>locale/ro_RO.qm</file>

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ka_GE">
<context>
<name>MouseGesturesSettingsDialog</name>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="14"/>
<source>Mouse Gestures</source>
<translation> </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="42"/>
<source>&lt;h1&gt;Mouse Gestures&lt;/h1&gt;</source>
<translation>&lt;h1&gt; &lt;/h1&gt;</translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="64"/>
<source>Press and hold the middle mouse button and move your mouse in the indicated directions.</source>
<translation> , .</translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="111"/>
<source>&lt;b&gt;Stop&lt;/b&gt;&lt;br/&gt;Stop loading page</source>
<translation>&lt;b&gt;&lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="125"/>
<source>&lt;b&gt;New tab&lt;/b&gt;&lt;br/&gt;Open new tab</source>
<translation>&lt;b&gt; &lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="139"/>
<source>&lt;b&gt;Back&lt;/b&gt;&lt;br/&gt;Go back in history</source>
<translation>&lt;b&gt;&lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="153"/>
<source>&lt;b&gt;Forward&lt;/b&gt;&lt;br/&gt;Go forward in history</source>
<translation>&lt;b&gt;&lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="173"/>
<source>&lt;b&gt;Reload&lt;/b&gt;&lt;br/&gt;Reload page</source>
<translation>&lt;b&gt;&lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="187"/>
<source>&lt;b&gt;Close tab&lt;/b&gt;&lt;br/&gt;Close current tab</source>
<translation>&lt;b&gt; &lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="201"/>
<source>&lt;b&gt;Home&lt;/b&gt;&lt;br/&gt;Go to homepage</source>
<translation>&lt;b&gt;&lt;/b&gt;&lt;br/&gt; </translation>
</message>
<message>
<location filename="../mousegesturessettingsdialog.ui" line="225"/>
<source>License</source>
<translation></translation>
</message>
</context>
</TS>

View File

@ -21,6 +21,7 @@ TRANSLATIONS += translations/cs_CZ.ts\
translations/id_ID.ts\
translations/it_IT.ts\
translations/ja_JP.ts\
translations/ka_GE.ts\
translations/nl_NL.ts\
translations/pt_PT.ts\
translations/ro_RO.ts\

View File

@ -8,6 +8,7 @@
<file>locale/id_ID.qm</file>
<file>locale/it_IT.qm</file>
<file>locale/ja_JP.qm</file>
<file>locale/ka_GE.qm</file>
<file>locale/nl_NL.qm</file>
<file>locale/pt_PT.qm</file>
<file>locale/ro_RO.qm</file>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="cs_CZ" sourcelanguage="en_US">
<context>
<name>TestPlugin</name>
<message>
<location filename="../testplugin.cpp" line="92"/>
<source>Close</source>
<translation></translation>
</message>
<message>
<location filename="../testplugin.cpp" line="103"/>
<source>Example Plugin Settings</source>
<translation> </translation>
</message>
<message>
<location filename="../testplugin.cpp" line="127"/>
<source>My first plugin action</source>
<translation> </translation>
</message>
<message>
<location filename="../testplugin.cpp" line="139"/>
<source>Hello</source>
<translation></translation>
</message>
<message>
<location filename="../testplugin.cpp" line="139"/>
<source>First plugin action works :-)</source>
<translation> :-)</translation>
</message>
</context>
</TS>

View File

@ -142,7 +142,7 @@
</message>
<message>
<source>AdBlock blocked unwanted popup window.</source>
<translation>AdBlock- .</translation>
<translation>AdBlock- .</translation>
</message>
<message>
<source>AdBlock</source>
@ -436,7 +436,7 @@
</message>
<message>
<source>&lt;b&gt;Note:&lt;/b&gt; Currently, only import from Html File can import also bookmark folders.</source>
<translation type="unfinished"></translation>
<translation>&lt;b&gt;:&lt;/b&gt; - Html .</translation>
</message>
</context>
<context>
@ -812,11 +812,11 @@
</message>
<message>
<source>Clear web databases</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Clear local storage</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
</context>
<context>
@ -1228,7 +1228,7 @@
</message>
<message>
<source>Image files</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
</context>
<context>
@ -1388,7 +1388,7 @@
<name>LicenseViewer</name>
<message>
<source>License Viewer</source>
<translation type="unfinished"> </translation>
<translation> </translation>
</message>
</context>
<context>
@ -1599,7 +1599,7 @@
</message>
<message>
<source>Cannot load extension!</source>
<translation type="unfinished"></translation>
<translation> !</translation>
</message>
</context>
<context>
@ -2246,27 +2246,27 @@
</message>
<message>
<source>Allow Netscape Plugins (Flash plugin)</source>
<translation type="unfinished"></translation>
<translation>Netscape- (Flash )</translation>
</message>
<message>
<source>Don&apos;t load tabs until selected</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Extensions</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>&lt;b&gt;Exceptions&lt;/b&gt;</source>
<translation type="unfinished"></translation>
<translation>&lt;b&gt;&lt;/b&gt;</translation>
</message>
<message>
<source>Server:</source>
<translation type="unfinished">:</translation>
<translation>:</translation>
</message>
<message>
<source>Use different proxy for https connection</source>
<translation type="unfinished"></translation>
<translation> https </translation>
</message>
</context>
<context>
@ -2667,40 +2667,41 @@
</message>
<message>
<source>HTML files</source>
<translation type="unfinished"></translation>
<translation>HTML </translation>
</message>
<message>
<source>Image files</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Text files</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>All files</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Last session crashed</source>
<translation type="unfinished"> </translation>
<translation> </translation>
</message>
<message>
<source>&lt;b&gt;QupZilla crashed :-(&lt;/b&gt;&lt;br/&gt;Oops, the last session of QupZilla was interrupted unexpectedly. We apologize for this. Would you like to try restoring the last saved state?</source>
<translation type="unfinished">&lt;b&gt;QupZilla :-(&lt;/b&gt;&lt;br/&gt;, QupZilla- . . ?</translation>
<translation>&lt;b&gt;QupZilla :-(&lt;/b&gt;&lt;br/&gt;, QupZilla- . . ?</translation>
</message>
<message>
<source>There are still %1 open tabs and your session won&apos;t be stored.
Are you sure to quit QupZilla?</source>
<translation type="unfinished"></translation>
<translation> %1 .
QupZilla- ?</translation>
</message>
<message>
<source>Don&apos;t ask again</source>
<translation type="unfinished"> </translation>
<translation> </translation>
</message>
<message>
<source>There are still open tabs</source>
<translation type="unfinished"> </translation>
<translation> </translation>
</message>
</context>
<context>
@ -2967,55 +2968,55 @@ Are you sure to quit QupZilla?</source>
</message>
<message>
<source>Build Configuration</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Disabled</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>&lt;b&gt;Enabled&lt;/b&gt;</source>
<translation type="unfinished"></translation>
<translation>&lt;b&gt;&lt;/b&gt;</translation>
</message>
<message>
<source>Debug build</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>WebGL support</source>
<translation type="unfinished"></translation>
<translation>WebGL </translation>
</message>
<message>
<source>Windows 7 API</source>
<translation type="unfinished"></translation>
<translation>Windows 7- API</translation>
</message>
<message>
<source>KDE integration</source>
<translation type="unfinished"></translation>
<translation>KDE- </translation>
</message>
<message>
<source>Portable build</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>Extensions</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>No available extensions.</source>
<translation type="unfinished"></translation>
<translation> .</translation>
</message>
<message>
<source>If you are experiencing problems with QupZilla, please try to disable all extensions first. &lt;br/&gt;If this does not fix it, then please fill out this form: </source>
<translation type="unfinished"></translation>
<translation> QupZilla- , . &lt;br/&gt; , :</translation>
</message>
<message>
<source>Close</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>This page contains information about QupZilla&apos;s current configuration - relevant for troubleshooting. Please include this information when submitting bug reports.</source>
<translation type="unfinished"></translation>
<translation> QupZilla- - . .</translation>
</message>
</context>
<context>
@ -3420,27 +3421,27 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
</message>
<message>
<source>Databases</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
<message>
<source>&lt;b&gt;Database details&lt;/b&gt;</source>
<translation type="unfinished"></translation>
<translation>&lt;b&gt; &lt;/b&gt;</translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">:</translation>
<translation>:</translation>
</message>
<message>
<source>Path:</source>
<translation type="unfinished">:</translation>
<translation>:</translation>
</message>
<message>
<source>&lt;database not selected&gt;</source>
<translation type="unfinished"></translation>
<translation>&lt;database not selected&gt;</translation>
</message>
<message>
<source>No databases are used by this page.</source>
<translation type="unfinished"></translation>
<translation> .</translation>
</message>
</context>
<context>
@ -3616,14 +3617,14 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
</message>
<message>
<source>Image files</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
</context>
<context>
<name>SqueezeLabelV2</name>
<message>
<source>Copy</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -3913,11 +3914,11 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
</message>
<message>
<source>JavaScript alert</source>
<translation type="unfinished"></translation>
<translation>JavaScript </translation>
</message>
<message>
<source>Unknown network error</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
</context>
<context>
@ -4127,7 +4128,7 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
</message>
<message>
<source>Create Search Engine</source>
<translation type="unfinished"></translation>
<translation> </translation>
</message>
</context>
<context>