1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-19 10:16:34 +01:00

[AdBlock] Make it possible to remove EasyList.

Closes #534
This commit is contained in:
nowrep 2013-04-13 23:00:22 +02:00
parent 901bdac85d
commit f09fc7fcec
6 changed files with 122 additions and 151 deletions

View File

@ -3,6 +3,7 @@ Version 1.5.0
* added support for Proxy Auto-Config (PAC)
* added option to open another private window from private window
* added delete action in edit context menu on page
* added possibility to remove EasyList from AdBlock
* proxy exceptions now supports wildcards (*, ?)
* cancel upload when trying to upload non-readable files
* GreaseMonkey: added support for GM_Settings

View File

@ -24,7 +24,8 @@ AdBlockAddSubscriptionDialog::AdBlockAddSubscriptionDialog(QWidget* parent)
{
ui->setupUi(this);
m_knownSubscriptions << Subscription("Fanboy's List (English)", "http://www.fanboy.co.nz/adblock/fanboy-adblock.txt")
m_knownSubscriptions << Subscription("EasyList (English)", "https://easylist-downloads.adblockplus.org/easylist.txt")
<< Subscription("Fanboy's List (English)", "http://www.fanboy.co.nz/adblock/fanboy-adblock.txt")
<< Subscription("Adversity (English)", "http://adversity.googlecode.com/hg/Adversity.txt")
<< Subscription("BSI Lista Polska (Polish)", "http://www.bsi.info.pl/filtrABP.txt")
<< Subscription("Czech List (Czech)", "http://adblock.dajbych.net/adblock.txt")

View File

@ -225,7 +225,7 @@ void AdBlockManager::load()
}
foreach (const QString &fileName, adblockDir.entryList(QStringList("*.txt"), QDir::Files)) {
if (fileName == QLatin1String("easylist.txt") || fileName == QLatin1String("customlist.txt")) {
if (fileName == QLatin1String("customlist.txt")) {
continue;
}
@ -253,10 +253,15 @@ void AdBlockManager::load()
m_subscriptions.append(subscription);
}
// Prepend EasyList
AdBlockSubscription* easyList = new AdBlockEasyList(this);
m_subscriptions.prepend(easyList);
connect(easyList, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet()));
// Prepend EasyList if subscriptions are empty
if (m_subscriptions.isEmpty()) {
AdBlockSubscription* easyList = new AdBlockSubscription(tr("EasyList"), this);
easyList->setUrl(QUrl("https://easylist-downloads.adblockplus.org/easylist.txt"));
easyList->setFilePath(mApp->currentProfilePath() + "adblock/easylist.txt");
connect(easyList, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet()));
m_subscriptions.prepend(easyList);
}
// Append CustomList
AdBlockCustomList* customList = new AdBlockCustomList(this);

View File

@ -181,6 +181,19 @@ void AdBlockSubscription::saveDownloadedData(const QByteArray &data)
return;
}
if (m_url == QUrl("https://easylist-downloads.adblockplus.org/easylist.txt")) {
// Third-party advertisers rules are with start domain (||) placeholder which needs regexps
// So we are ignoring it for keeping good performance
// But we will use whitelist rules at the end of list
QByteArray part1 = data.left(data.indexOf(QLatin1String("!-----------------------------Third-party adverts-----------------------------!")));
QByteArray part2 = data.mid(data.indexOf(QLatin1String("!---------------------------------Whitelists----------------------------------!")));
file.write(part1 + part2);
file.close();
return;
}
file.write(data);
file.close();
}
@ -379,40 +392,6 @@ AdBlockSubscription::~AdBlockSubscription()
qDeleteAll(m_rules);
}
// AdBlockEasyList
AdBlockEasyList::AdBlockEasyList(QObject* parent)
: AdBlockSubscription(tr("EasyList"), parent)
{
setUrl(QUrl("https://easylist-downloads.adblockplus.org/easylist.txt"));
setFilePath(mApp->currentProfilePath() + "adblock/easylist.txt");
}
bool AdBlockEasyList::canBeRemoved() const
{
return false;
}
void AdBlockEasyList::saveDownloadedData(const QByteArray &data)
{
QFile file(filePath());
if (!file.open(QFile::ReadWrite | QFile::Truncate)) {
qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "Unable to open adblock file for writing:" << filePath();
return;
}
// Third-party advertisers rules are with start domain (||) placeholder which needs regexps
// So we are ignoring it for keeping good performance
// But we will use whitelist rules at the end of list
QByteArray part1 = data.left(data.indexOf(QLatin1String("!-----------------------------Third-party adverts-----------------------------!")));
QByteArray part2 = data.mid(data.indexOf(QLatin1String("!---------------------------------Whitelists----------------------------------!")));
file.write(part1 + part2);
file.close();
}
// AdBlockCustomList
AdBlockCustomList::AdBlockCustomList(QObject* parent)

View File

@ -131,18 +131,6 @@ private:
bool m_updated;
};
class AdBlockEasyList : public AdBlockSubscription
{
Q_OBJECT
public:
explicit AdBlockEasyList(QObject* parent = 0);
bool canBeRemoved() const;
protected:
void saveDownloadedData(const QByteArray &data);
};
class AdBlockCustomList : public AdBlockSubscription
{
Q_OBJECT

View File

@ -116,7 +116,7 @@
<context>
<name>AdBlockCustomList</name>
<message>
<location filename="../src/lib/adblock/adblocksubscription.cpp" line="419"/>
<location filename="../src/lib/adblock/adblocksubscription.cpp" line="398"/>
<source>Custom Rules</source>
<translation type="unfinished"></translation>
</message>
@ -179,14 +179,6 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AdBlockEasyList</name>
<message>
<location filename="../src/lib/adblock/adblocksubscription.cpp" line="385"/>
<source>EasyList</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AdBlockIcon</name>
<message>
@ -258,6 +250,11 @@
<source>AdBlock Subscription</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/adblock/adblockmanager.cpp" line="258"/>
<source>EasyList</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AdBlockTreeWidget</name>
@ -2439,12 +2436,12 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/preferences/pluginsmanager.cpp" line="259"/>
<location filename="../src/lib/preferences/pluginsmanager.cpp" line="263"/>
<source>Error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/preferences/pluginsmanager.cpp" line="259"/>
<location filename="../src/lib/preferences/pluginsmanager.cpp" line="263"/>
<source>Cannot load extension!</source>
<translation type="unfinished"></translation>
</message>
@ -5751,173 +5748,173 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
<context>
<name>WebPage</name>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="350"/>
<location filename="../src/lib/webview/webpage.cpp" line="361"/>
<source>QupZilla cannot handle &lt;b&gt;%1:&lt;/b&gt; links. The requested link is &lt;ul&gt;&lt;li&gt;%2&lt;/li&gt;&lt;/ul&gt;Do you want QupZilla to try open this link in system application?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="355"/>
<location filename="../src/lib/webview/webpage.cpp" line="366"/>
<source>Remember my choice for this protocol</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="356"/>
<location filename="../src/lib/webview/webpage.cpp" line="367"/>
<source>External Protocol Request</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="517"/>
<location filename="../src/lib/webview/webpage.cpp" line="521"/>
<source>To show this page, QupZilla must resend request which do it again
(like searching on making an shopping, which has been already done.)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="519"/>
<location filename="../src/lib/webview/webpage.cpp" line="523"/>
<source>Confirm form resubmission</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="688"/>
<location filename="../src/lib/webview/webpage.cpp" line="692"/>
<source>Select files to upload...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="709"/>
<location filename="../src/lib/webview/webpage.cpp" line="713"/>
<source>Server refused the connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="712"/>
<location filename="../src/lib/webview/webpage.cpp" line="716"/>
<source>Server closed the connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="715"/>
<location filename="../src/lib/webview/webpage.cpp" line="719"/>
<source>Server not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="718"/>
<location filename="../src/lib/webview/webpage.cpp" line="722"/>
<source>Connection timed out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="721"/>
<location filename="../src/lib/webview/webpage.cpp" line="725"/>
<source>Untrusted connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="724"/>
<location filename="../src/lib/webview/webpage.cpp" line="728"/>
<source>Temporary network failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="727"/>
<location filename="../src/lib/webview/webpage.cpp" line="731"/>
<source>Proxy connection refused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="730"/>
<location filename="../src/lib/webview/webpage.cpp" line="734"/>
<source>Proxy server not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="733"/>
<location filename="../src/lib/webview/webpage.cpp" line="737"/>
<source>Proxy connection timed out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="736"/>
<location filename="../src/lib/webview/webpage.cpp" line="740"/>
<source>Proxy authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="739"/>
<location filename="../src/lib/webview/webpage.cpp" line="743"/>
<source>Content not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="742"/>
<location filename="../src/lib/webview/webpage.cpp" line="746"/>
<source>Unknown network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="772"/>
<location filename="../src/lib/webview/webpage.cpp" line="776"/>
<source>AdBlocked Content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="776"/>
<location filename="../src/lib/webview/webpage.cpp" line="780"/>
<source>Blocked by &lt;i&gt;%1&lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="793"/>
<location filename="../src/lib/webview/webpage.cpp" line="797"/>
<source>Content Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="808"/>
<location filename="../src/lib/webview/webpage.cpp" line="812"/>
<source>Error code %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="820"/>
<location filename="../src/lib/webview/webpage.cpp" line="824"/>
<source>Failed loading page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="826"/>
<location filename="../src/lib/webview/webpage.cpp" line="830"/>
<source>QupZilla can&apos;t load page.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="826"/>
<location filename="../src/lib/webview/webpage.cpp" line="830"/>
<source>QupZilla can&apos;t load page from %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="830"/>
<location filename="../src/lib/webview/webpage.cpp" line="834"/>
<source>Check the address for typing errors such as &lt;b&gt;ww.&lt;/b&gt;example.com instead of &lt;b&gt;www.&lt;/b&gt;example.com</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="831"/>
<location filename="../src/lib/webview/webpage.cpp" line="835"/>
<source>If you are unable to load any pages, check your computer&apos;s network connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="832"/>
<location filename="../src/lib/webview/webpage.cpp" line="836"/>
<source>If your computer or network is protected by a firewall or proxy, make sure that QupZilla is permitted to access the Web.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="833"/>
<location filename="../src/lib/webview/webpage.cpp" line="837"/>
<source>Try Again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="933"/>
<location filename="../src/lib/webview/webpage.cpp" line="937"/>
<source>JavaScript alert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="941"/>
<location filename="../src/lib/webview/webpage.cpp" line="945"/>
<source>Prevent this page from creating additional dialogs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="989"/>
<location filename="../src/lib/webview/webpage.cpp" line="993"/>
<source>Choose file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="997"/>
<location filename="../src/lib/webview/webpage.cpp" line="1001"/>
<source>Cannot read data from &lt;b&gt;%1&lt;/b&gt;. Upload was cancelled!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webpage.cpp" line="998"/>
<location filename="../src/lib/webview/webpage.cpp" line="1002"/>
<source>Cannot read file!</source>
<translation type="unfinished"></translation>
</message>
@ -5963,268 +5960,268 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="760"/>
<location filename="../src/lib/webview/webview.cpp" line="766"/>
<source>Create Search Engine</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="777"/>
<location filename="../src/lib/webview/webview.cpp" line="783"/>
<source>Cut</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="779"/>
<location filename="../src/lib/webview/webview.cpp" line="785"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="781"/>
<location filename="../src/lib/webview/webview.cpp" line="787"/>
<source>Paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="783"/>
<location filename="../src/lib/webview/webview.cpp" line="789"/>
<source>Select All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="785"/>
<location filename="../src/lib/webview/webview.cpp" line="908"/>
<location filename="../src/lib/webview/webview.cpp" line="791"/>
<location filename="../src/lib/webview/webview.cpp" line="914"/>
<source>&amp;Reload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="786"/>
<location filename="../src/lib/webview/webview.cpp" line="792"/>
<source>S&amp;top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="840"/>
<location filename="../src/lib/webview/webview.cpp" line="846"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="887"/>
<location filename="../src/lib/webview/webview.cpp" line="893"/>
<source>&amp;Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="891"/>
<location filename="../src/lib/webview/webview.cpp" line="897"/>
<source>&amp;Forward</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="901"/>
<location filename="../src/lib/webview/webview.cpp" line="907"/>
<source>This frame</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="902"/>
<location filename="../src/lib/webview/webview.cpp" line="908"/>
<source>Show &amp;only this frame</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="903"/>
<location filename="../src/lib/webview/webview.cpp" line="909"/>
<source>Show this frame in new &amp;tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="909"/>
<location filename="../src/lib/webview/webview.cpp" line="915"/>
<source>Print frame</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="911"/>
<location filename="../src/lib/webview/webview.cpp" line="917"/>
<source>Zoom &amp;in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="912"/>
<location filename="../src/lib/webview/webview.cpp" line="918"/>
<source>&amp;Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="913"/>
<location filename="../src/lib/webview/webview.cpp" line="919"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="915"/>
<location filename="../src/lib/webview/webview.cpp" line="921"/>
<source>Show so&amp;urce of frame</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="921"/>
<location filename="../src/lib/webview/webview.cpp" line="927"/>
<source>Book&amp;mark page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="922"/>
<location filename="../src/lib/webview/webview.cpp" line="928"/>
<source>&amp;Save page as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="923"/>
<location filename="../src/lib/webview/webview.cpp" line="929"/>
<source>&amp;Copy page link</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="924"/>
<location filename="../src/lib/webview/webview.cpp" line="930"/>
<source>Send page link...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="925"/>
<location filename="../src/lib/webview/webview.cpp" line="931"/>
<source>&amp;Print page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="927"/>
<location filename="../src/lib/webview/webview.cpp" line="933"/>
<source>Select &amp;all</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="931"/>
<location filename="../src/lib/webview/webview.cpp" line="937"/>
<source>Validate page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="934"/>
<location filename="../src/lib/webview/webview.cpp" line="940"/>
<source>Show so&amp;urce code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="935"/>
<location filename="../src/lib/webview/webview.cpp" line="941"/>
<source>Show info ab&amp;out site</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="946"/>
<location filename="../src/lib/webview/webview.cpp" line="952"/>
<source>Open link in new &amp;tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="951"/>
<location filename="../src/lib/webview/webview.cpp" line="957"/>
<source>Open link in new &amp;window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="953"/>
<location filename="../src/lib/webview/webview.cpp" line="959"/>
<source>B&amp;ookmark link</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="954"/>
<location filename="../src/lib/webview/webview.cpp" line="960"/>
<source>&amp;Save link as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="955"/>
<location filename="../src/lib/webview/webview.cpp" line="961"/>
<source>Send link...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="956"/>
<location filename="../src/lib/webview/webview.cpp" line="962"/>
<source>&amp;Copy link address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="968"/>
<location filename="../src/lib/webview/webview.cpp" line="974"/>
<source>Show i&amp;mage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="973"/>
<location filename="../src/lib/webview/webview.cpp" line="979"/>
<source>Copy im&amp;age</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="974"/>
<location filename="../src/lib/webview/webview.cpp" line="980"/>
<source>Copy image ad&amp;dress</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="976"/>
<location filename="../src/lib/webview/webview.cpp" line="982"/>
<source>&amp;Save image as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="977"/>
<location filename="../src/lib/webview/webview.cpp" line="983"/>
<source>Send image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="996"/>
<location filename="../src/lib/webview/webview.cpp" line="1002"/>
<source>Send text...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1001"/>
<location filename="../src/lib/webview/webview.cpp" line="1007"/>
<source>Google Translate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1006"/>
<location filename="../src/lib/webview/webview.cpp" line="1012"/>
<source>Dictionary</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1021"/>
<location filename="../src/lib/webview/webview.cpp" line="1027"/>
<source>Go to &amp;web address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1035"/>
<location filename="../src/lib/webview/webview.cpp" line="1041"/>
<source>Search &quot;%1 ..&quot; with %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1041"/>
<location filename="../src/lib/webview/webview.cpp" line="1047"/>
<source>Search with...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1068"/>
<location filename="../src/lib/webview/webview.cpp" line="1074"/>
<source>&amp;Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1068"/>
<location filename="../src/lib/webview/webview.cpp" line="1074"/>
<source>&amp;Pause</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1069"/>
<location filename="../src/lib/webview/webview.cpp" line="1075"/>
<source>Un&amp;mute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1069"/>
<location filename="../src/lib/webview/webview.cpp" line="1075"/>
<source>&amp;Mute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1071"/>
<location filename="../src/lib/webview/webview.cpp" line="1077"/>
<source>&amp;Copy Media Address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1072"/>
<location filename="../src/lib/webview/webview.cpp" line="1078"/>
<source>&amp;Send Media Address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1073"/>
<location filename="../src/lib/webview/webview.cpp" line="1079"/>
<source>Save Media To &amp;Disk</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1082"/>
<location filename="../src/lib/webview/webview.cpp" line="1088"/>
<source>Check &amp;Spelling</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lib/webview/webview.cpp" line="1087"/>
<location filename="../src/lib/webview/webview.cpp" line="1093"/>
<source>Languages</source>
<translation type="unfinished"></translation>
</message>