summaryrefslogtreecommitdiffstats
path: root/kcontrol/ebrowsing/plugins
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kcontrol/ebrowsing/plugins
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kcontrol/ebrowsing/plugins')
-rw-r--r--kcontrol/ebrowsing/plugins/Makefile.am3
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/Makefile.am31
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/ikwsopts.cpp492
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/ikwsopts.h73
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/ikwsopts_ui.ui258
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.cpp81
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.desktop70
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.h48
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.upd7
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.cpp540
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.h77
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.cpp90
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.desktop68
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.h50
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchprovider.cpp78
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchprovider.desktop91
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchprovider.h55
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.cpp101
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.h46
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviderdlg_ui.ui137
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/Makefile.am91
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/acronym.desktop83
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa.desktop14
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop43
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/alltheweb.desktop45
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/altavista.desktop23
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/amg.desktop49
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/appsy.desktop84
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/austronaut.desktop18
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/backports.desktop66
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/bugft.desktop81
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/bugno.desktop82
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/call.desktop70
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/cia.desktop45
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/citeseer.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/cpan.desktop53
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan.desktop54
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan_cat.desktop77
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/dbug.desktop67
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/de2en.desktop69
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/de2fr.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/deb.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/dmoz.desktop51
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/docbook.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/doi.desktop63
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2de.desktop73
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2es.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2fr.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2it.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/es2en.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/excite.desktop22
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/feedster.desktop18
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/foldoc.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2de.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2en.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/freedb.desktop15
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop19
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/froogle.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/fsd.desktop66
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google.desktop31
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_advanced.desktop95
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_groups.desktop89
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_images.desktop94
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_lucky.desktop94
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_movie.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_news.desktop85
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/gracenote.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/grec.desktop65
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/hotbot.desktop18
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop12
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop65
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/imdb.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/it2en.desktop75
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/jeeves.desktop30
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/katatudo.desktop15
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/kde.desktop80
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop32
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/leo.desktop49
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/lycos.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/mamma.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop20
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/msdn.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/netcraft.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-telephone.desktop71
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop83
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/php.desktop81
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/python.desktop84
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/qt.desktop78
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/qt3.desktop71
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/rae.desktop77
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/rfc.desktop57
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop44
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/seek.desktop11
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop19
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/technorati.desktop14
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop55
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop63
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/tvtome.desktop24
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/uspto.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop14
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/voila.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/webster.desktop73
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/whatis.desktop71
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/wikipedia.desktop94
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop85
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/wordref.desktop78
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/Makefile.am20
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/klocaldomainurifilterhelper.c60
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.cpp117
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.desktop48
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.h65
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/Makefile.am18
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.cpp554
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.desktop54
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.h111
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilterrc7
118 files changed, 8508 insertions, 0 deletions
diff --git a/kcontrol/ebrowsing/plugins/Makefile.am b/kcontrol/ebrowsing/plugins/Makefile.am
new file mode 100644
index 000000000..df9163228
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/Makefile.am
@@ -0,0 +1,3 @@
+
+SUBDIRS = ikws shorturi localdomain
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/Makefile.am b/kcontrol/ebrowsing/plugins/ikws/Makefile.am
new file mode 100644
index 000000000..9fbde1ecb
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/Makefile.am
@@ -0,0 +1,31 @@
+## Makefile.am of kdebase/kcontrol/ebrowsing/plugins/ikws
+
+SUBDIRS = searchproviders
+
+AM_CPPFLAGS = $(all_includes)
+
+METASOURCES = AUTO
+
+kde_module_LTLIBRARIES = libkuriikwsfilter.la libkurisearchfilter.la
+
+libkuriikwsfilter_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+libkuriikwsfilter_la_LIBADD = $(LIB_KSYCOCA) $(LIB_KDEUI)
+
+libkurisearchfilter_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+libkurisearchfilter_la_LIBADD = $(LIB_KSYCOCA) $(LIB_KDEUI)
+
+libkuriikwsfilter_la_SOURCES = kuriikwsfiltereng.cpp kuriikwsfilter.skel \
+ kuriikwsfilter.cpp searchprovider.cpp
+
+libkurisearchfilter_la_SOURCES = kurisearchfilter.cpp kurisearchfilter.skel \
+ kuriikwsfiltereng.cpp ikwsopts.cpp searchproviderdlg.cpp searchprovider.cpp \
+ searchproviderdlg_ui.ui ikwsopts_ui.ui
+
+update_DATA = kuriikwsfilter.upd
+updatedir = $(kde_datadir)/kconf_update
+
+service_DATA = kuriikwsfilter.desktop kurisearchfilter.desktop
+servicedir = $(kde_servicesdir)
+
+servicetypes_DATA = searchprovider.desktop
+servicetypesdir = $(kde_servicetypesdir)
diff --git a/kcontrol/ebrowsing/plugins/ikws/ikwsopts.cpp b/kcontrol/ebrowsing/plugins/ikws/ikwsopts.cpp
new file mode 100644
index 000000000..6c055255d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/ikwsopts.cpp
@@ -0,0 +1,492 @@
+/*
+ * Copyright (c) 2000 Yves Arrouye <yves@realnames.com>
+ * Copyright (c) 2001, 2002 Dawit Alemayehu <adawit@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <qcheckbox.h>
+#include <qfile.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qvbox.h>
+#include <qwhatsthis.h>
+
+#include <kdebug.h>
+#include <kglobal.h>
+#include <dcopref.h>
+#include <kapplication.h>
+#include <kcombobox.h>
+#include <kconfig.h>
+#include <kiconloader.h>
+#include <klistview.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kservice.h>
+#include <ksimpleconfig.h>
+#include <kstandarddirs.h>
+#include <ktrader.h>
+
+#include "ikwsopts.h"
+#include "ikwsopts_ui.h"
+#include "kuriikwsfiltereng.h"
+#include "searchprovider.h"
+#include "searchproviderdlg.h"
+
+
+class SearchProviderItem : public QCheckListItem
+{
+public:
+ SearchProviderItem(QListView *parent, SearchProvider *provider)
+ :QCheckListItem(parent, provider->name(), CheckBox), m_provider(provider)
+ {
+ update();
+ }
+
+ virtual ~SearchProviderItem()
+ {
+ delete m_provider;
+ }
+
+ void update()
+ {
+ setText(0, m_provider->name());
+ setText(1, m_provider->keys().join(","));
+ }
+
+ SearchProvider *provider() const { return m_provider; }
+
+private:
+ SearchProvider *m_provider;
+};
+
+FilterOptions::FilterOptions(KInstance *instance, QWidget *parent, const char *name)
+ :KCModule(instance, parent, name)
+{
+ QVBoxLayout *mainLayout = new QVBoxLayout( this, KDialog::marginHint(),
+ KDialog::spacingHint());
+
+ m_dlg = new FilterOptionsUI (this);
+ mainLayout->addWidget(m_dlg);
+
+ m_dlg->lvSearchProviders->header()->setLabel(0, SmallIconSet("bookmark"),i18n("Name"));
+ m_dlg->lvSearchProviders->setSorting(0);
+
+ // Load the options
+ load();
+}
+
+QString FilterOptions::quickHelp() const
+{
+ return i18n("In this module you can configure the web shortcuts feature. "
+ "Web shortcuts allow you to quickly search or lookup words on "
+ "the Internet. For example, to search for information about the "
+ "KDE project using the Google engine, you simply type <b>gg:KDE</b> "
+ "or <b>google:KDE</b>."
+ "<p>If you select a default search engine, normal words or phrases "
+ "will be looked up at the specified search engine by simply typing "
+ "them into applications, such as Konqueror, that have built-in support "
+ "for such a feature.");
+}
+
+void FilterOptions::load()
+{
+ load( false );
+}
+
+void FilterOptions::load( bool useDefaults )
+{
+ // Clear state first.
+ m_dlg->lvSearchProviders->clear();
+
+ KConfig config( KURISearchFilterEngine::self()->name() + "rc", false, false );
+
+ config.setReadDefaults( useDefaults );
+
+ config.setGroup("General");
+
+ QString defaultSearchEngine = config.readEntry("DefaultSearchEngine");
+
+ m_favoriteEngines.clear();
+ m_favoriteEngines << "google" << "google_groups" << "google_news" << "webster" << "dmoz" << "wikipedia";
+ m_favoriteEngines = config.readListEntry("FavoriteSearchEngines", m_favoriteEngines);
+
+ const KTrader::OfferList services = KTrader::self()->query("SearchProvider");
+
+ for (KTrader::OfferList::ConstIterator it = services.begin();
+ it != services.end(); ++it)
+ {
+ displaySearchProvider(new SearchProvider(*it),
+ ((*it)->desktopEntryName() == defaultSearchEngine));
+ }
+
+ bool webShortcutsEnabled = config.readBoolEntry("EnableWebShortcuts", true);
+ m_dlg->cbEnableShortcuts->setChecked( webShortcutsEnabled );
+
+ setDelimiter (config.readNumEntry ("KeywordDelimiter", ':'));
+
+ // Update the GUI to reflect the config options read above...
+ setWebShortcutState();
+
+ if (m_dlg->lvSearchProviders->childCount())
+ m_dlg->lvSearchProviders->setSelected(m_dlg->lvSearchProviders->firstChild(), true);
+
+ // Connect all the signals/slots...
+ connect(m_dlg->cbEnableShortcuts, SIGNAL(clicked()), this,
+ SLOT(setWebShortcutState()));
+ connect(m_dlg->cbEnableShortcuts, SIGNAL(clicked()), this,
+ SLOT(configChanged()));
+
+ connect(m_dlg->lvSearchProviders, SIGNAL(selectionChanged(QListViewItem *)),
+ this, SLOT(updateSearchProvider()));
+ connect(m_dlg->lvSearchProviders, SIGNAL(doubleClicked(QListViewItem *)),
+ this, SLOT(changeSearchProvider()));
+ connect(m_dlg->lvSearchProviders, SIGNAL(returnPressed(QListViewItem *)),
+ this, SLOT(changeSearchProvider()));
+ connect(m_dlg->lvSearchProviders, SIGNAL(executed(QListViewItem *)),
+ this, SLOT(checkFavoritesChanged()));
+ connect(m_dlg->lvSearchProviders, SIGNAL(spacePressed(QListViewItem *)),
+ this, SLOT(checkFavoritesChanged()));
+ connect(m_dlg->lvSearchProviders, SIGNAL(pressed(QListViewItem *)),
+ this, SLOT(checkFavoritesChanged()));
+
+ connect(m_dlg->cmbDefaultEngine, SIGNAL(activated(const QString &)), this,
+ SLOT(configChanged()));
+ connect(m_dlg->cmbDelimiter, SIGNAL(activated(const QString &)), this,
+ SLOT(configChanged()));
+
+ connect(m_dlg->pbNew, SIGNAL(clicked()), this, SLOT(addSearchProvider()));
+ connect(m_dlg->pbChange, SIGNAL(clicked()), this, SLOT(changeSearchProvider()));
+ connect(m_dlg->pbDelete, SIGNAL(clicked()), this, SLOT(deleteSearchProvider()));
+
+ emit changed( useDefaults );
+}
+
+char FilterOptions::delimiter ()
+{
+ switch (m_dlg->cmbDelimiter->currentItem())
+ {
+ case 1:
+ return ' ';
+ case 0:
+ default:
+ return ':';
+ };
+}
+
+void FilterOptions::setDelimiter (char sep)
+{
+ switch (sep)
+ {
+ case ' ':
+ m_dlg->cmbDelimiter->setCurrentItem (1);
+ break;
+ case ':':
+ default:
+ m_dlg->cmbDelimiter->setCurrentItem (0);
+ };
+}
+
+void FilterOptions::save()
+{
+ KConfig config( KURISearchFilterEngine::self()->name() + "rc", false, false );
+
+ config.setGroup("General");
+ config.writeEntry("EnableWebShortcuts", m_dlg->cbEnableShortcuts->isChecked());
+ config.writeEntry("KeywordDelimiter", delimiter() );
+
+ QString engine;
+
+ if (m_dlg->cmbDefaultEngine->currentItem() != 0)
+ engine = m_dlg->cmbDefaultEngine->currentText();
+
+ config.writeEntry("DefaultSearchEngine", m_defaultEngineMap[engine]);
+
+ // kdDebug () << "Engine: " << m_defaultEngineMap[engine] << endl;
+
+ int changedProviderCount = 0;
+ QString path = kapp->dirs()->saveLocation("services", "searchproviders/");
+
+ m_favoriteEngines.clear();
+
+ for (QListViewItemIterator it(m_dlg->lvSearchProviders); it.current(); ++it)
+ {
+ SearchProviderItem *item = dynamic_cast<SearchProviderItem *>(it.current());
+
+ Q_ASSERT(item);
+
+ SearchProvider *provider = item->provider();
+
+ QString name = provider->desktopEntryName();
+
+ if (item->isOn())
+ m_favoriteEngines << name;
+
+ if (provider->isDirty())
+ {
+ changedProviderCount++;
+
+ if (name.isEmpty())
+ {
+ // New provider
+ // Take the longest search shortcut as filename,
+ // if such a file already exists, append a number and increase it
+ // until the name is unique
+ for (QStringList::ConstIterator it = provider->keys().begin(); it != provider->keys().end(); ++it)
+ {
+ if ((*it).length() > name.length())
+ name = (*it).lower();
+ }
+ for (int suffix = 0; ; ++suffix)
+ {
+ QString located, check = name;
+ if (suffix)
+ check += QString().setNum(suffix);
+ if ((located = locate("services", "searchproviders/" + check + ".desktop")).isEmpty())
+ {
+ name = check;
+ break;
+ }
+ else if (located.left(path.length()) == path)
+ {
+ // If it's a deleted (hidden) entry, overwrite it
+ if (KService(located).isDeleted())
+ break;
+ }
+ }
+ }
+
+ KSimpleConfig service(path + name + ".desktop");
+ service.setGroup("Desktop Entry");
+ service.writeEntry("Type", "Service");
+ service.writeEntry("ServiceTypes", "SearchProvider");
+ service.writeEntry("Name", provider->name());
+ service.writeEntry("Query", provider->query(), true, false, true);
+ service.writeEntry("Keys", provider->keys());
+ service.writeEntry("Charset", provider->charset());
+
+ // we might be overwriting a hidden entry
+ service.writeEntry("Hidden", false);
+ }
+ }
+
+ for (QStringList::ConstIterator it = m_deletedProviders.begin();
+ it != m_deletedProviders.end(); ++it)
+ {
+ QStringList matches = kapp->dirs()->findAllResources("services", "searchproviders/" + *it + ".desktop");
+
+ // Shouldn't happen
+ if (!matches.count())
+ continue;
+
+ if (matches.count() == 1 && matches[0].left(path.length()) == path)
+ {
+ // If only the local copy existed, unlink it
+ // TODO: error handling
+ QFile::remove(matches[0]);
+ continue;
+ }
+ KSimpleConfig service(path + *it + ".desktop");
+ service.setGroup("Desktop Entry");
+ service.writeEntry("Type", "Service");
+ service.writeEntry("ServiceTypes", "SearchProvider");
+ service.writeEntry("Hidden", true);
+ }
+
+ config.writeEntry("FavoriteSearchEngines", m_favoriteEngines);
+ config.sync();
+
+ emit changed(false);
+
+ // Update filters in running applications...
+ (void) DCOPRef("*", "KURIIKWSFilterIface").send("configure");
+ (void) DCOPRef("*", "KURISearchFilterIface").send("configure");
+
+ // If the providers changed, tell sycoca to rebuild its database...
+ if (changedProviderCount)
+ KService::rebuildKSycoca(this);
+}
+
+void FilterOptions::defaults()
+{
+ load( true );
+}
+
+void FilterOptions::configChanged()
+{
+ // kdDebug () << "FilterOptions::configChanged: TRUE" << endl;
+ emit changed(true);
+}
+
+void FilterOptions::checkFavoritesChanged()
+{
+ QStringList currentFavoriteEngines;
+ for (QListViewItemIterator it(m_dlg->lvSearchProviders); it.current(); ++it)
+ {
+ SearchProviderItem *item = dynamic_cast<SearchProviderItem *>(it.current());
+
+ Q_ASSERT(item);
+
+ if (item->isOn())
+ currentFavoriteEngines << item->provider()->desktopEntryName();
+ }
+
+ if (!(currentFavoriteEngines==m_favoriteEngines)) {
+ m_favoriteEngines=currentFavoriteEngines;
+ configChanged();
+ }
+}
+
+void FilterOptions::setWebShortcutState()
+{
+ bool use_keywords = m_dlg->cbEnableShortcuts->isChecked();
+ m_dlg->lvSearchProviders->setEnabled(use_keywords);
+ m_dlg->pbNew->setEnabled(use_keywords);
+ m_dlg->pbChange->setEnabled(use_keywords);
+ m_dlg->pbDelete->setEnabled(use_keywords);
+ m_dlg->lbDelimiter->setEnabled (use_keywords);
+ m_dlg->cmbDelimiter->setEnabled (use_keywords);
+ m_dlg->lbDefaultEngine->setEnabled (use_keywords);
+ m_dlg->cmbDefaultEngine->setEnabled (use_keywords);
+}
+
+void FilterOptions::addSearchProvider()
+{
+ SearchProviderDialog dlg(0, this);
+ if (dlg.exec())
+ {
+ m_dlg->lvSearchProviders->setSelected(displaySearchProvider(dlg.provider()), true);
+ configChanged();
+ }
+}
+
+void FilterOptions::changeSearchProvider()
+{
+ SearchProviderItem *item = dynamic_cast<SearchProviderItem *>(m_dlg->lvSearchProviders->currentItem());
+ Q_ASSERT(item);
+
+ SearchProviderDialog dlg(item->provider(), this);
+
+ if (dlg.exec())
+ {
+ m_dlg->lvSearchProviders->setSelected(displaySearchProvider(dlg.provider()), true);
+ configChanged();
+ }
+}
+
+void FilterOptions::deleteSearchProvider()
+{
+ SearchProviderItem *item = dynamic_cast<SearchProviderItem *>(m_dlg->lvSearchProviders->currentItem());
+ Q_ASSERT(item);
+
+ // Update the combo box to go to None if the fallback was deleted.
+ int current = m_dlg->cmbDefaultEngine->currentItem();
+ for (int i = 1, count = m_dlg->cmbDefaultEngine->count(); i < count; ++i)
+ {
+ if (m_dlg->cmbDefaultEngine->text(i) == item->provider()->name())
+ {
+ m_dlg->cmbDefaultEngine->removeItem(i);
+ if (i == current)
+ m_dlg->cmbDefaultEngine->setCurrentItem(0);
+ else if (current > i)
+ m_dlg->cmbDefaultEngine->setCurrentItem(current - 1);
+
+ break;
+ }
+ }
+
+ if (item->nextSibling())
+ m_dlg->lvSearchProviders->setSelected(item->nextSibling(), true);
+ else if (item->itemAbove())
+ m_dlg->lvSearchProviders->setSelected(item->itemAbove(), true);
+
+ if (!item->provider()->desktopEntryName().isEmpty())
+ m_deletedProviders.append(item->provider()->desktopEntryName());
+
+ delete item;
+ updateSearchProvider();
+ configChanged();
+}
+
+void FilterOptions::updateSearchProvider()
+{
+ m_dlg->pbChange->setEnabled(m_dlg->lvSearchProviders->currentItem());
+ m_dlg->pbDelete->setEnabled(m_dlg->lvSearchProviders->currentItem());
+}
+
+SearchProviderItem *FilterOptions::displaySearchProvider(SearchProvider *p, bool fallback)
+{
+ // Show the provider in the list.
+ SearchProviderItem *item = 0L;
+
+ QListViewItemIterator it(m_dlg->lvSearchProviders);
+
+ for (; it.current(); ++it)
+ {
+ if (it.current()->text(0) == p->name())
+ {
+ item = dynamic_cast<SearchProviderItem *>(it.current());
+ Q_ASSERT(item);
+ break;
+ }
+ }
+
+ if (item)
+ item->update ();
+ else
+ {
+ // Put the name in the default search engine combo box.
+ int itemCount;
+ int totalCount = m_dlg->cmbDefaultEngine->count();
+
+ item = new SearchProviderItem(m_dlg->lvSearchProviders, p);
+
+ if (m_favoriteEngines.find(p->desktopEntryName())!=m_favoriteEngines.end())
+ item->setOn(true);
+
+ for (itemCount = 1; itemCount < totalCount; itemCount++)
+ {
+ if (m_dlg->cmbDefaultEngine->text(itemCount) > p->name())
+ {
+ int currentItem = m_dlg->cmbDefaultEngine->currentItem();
+ m_dlg->cmbDefaultEngine->insertItem(p->name(), itemCount);
+ m_defaultEngineMap[p->name ()] = p->desktopEntryName ();
+ if (currentItem >= itemCount)
+ m_dlg->cmbDefaultEngine->setCurrentItem(currentItem+1);
+ break;
+ }
+ }
+
+ // Append it to the end of the list...
+ if (itemCount == totalCount)
+ {
+ m_dlg->cmbDefaultEngine->insertItem(p->name(), itemCount);
+ m_defaultEngineMap[p->name ()] = p->desktopEntryName ();
+ }
+
+ if (fallback)
+ m_dlg->cmbDefaultEngine->setCurrentItem(itemCount);
+ }
+
+ if (!it.current())
+ m_dlg->lvSearchProviders->sort();
+
+ return item;
+}
+
+#include "ikwsopts.moc"
diff --git a/kcontrol/ebrowsing/plugins/ikws/ikwsopts.h b/kcontrol/ebrowsing/plugins/ikws/ikwsopts.h
new file mode 100644
index 000000000..b533fb9a7
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/ikwsopts.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2000 Yves Arrouye <yves@realnames.com>
+ * Copyright (c) 2002, 2003 Dawit Alemayehu <adawit@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __IKWSOPTS_H___
+#define __IKWSOPTS_H___
+
+#include <qlayout.h>
+#include <qtabwidget.h>
+
+#include <kcmodule.h>
+#include <kservice.h>
+
+class FilterOptionsUI;
+class SearchProvider;
+class SearchProviderItem;
+
+class FilterOptions : public KCModule
+{
+ Q_OBJECT
+
+public:
+ FilterOptions(KInstance *instance, QWidget *parent = 0, const char *name = 0);
+
+ void load();
+ void load( bool useDefaults );
+ void save();
+ void defaults();
+ QString quickHelp() const;
+
+protected slots:
+ void configChanged();
+ void checkFavoritesChanged();
+
+ void setWebShortcutState();
+
+ void addSearchProvider();
+ void changeSearchProvider();
+ void deleteSearchProvider();
+ void updateSearchProvider();
+
+private:
+ SearchProviderItem *displaySearchProvider(SearchProvider *p, bool fallback = false);
+
+ void setDelimiter (char);
+ char delimiter ();
+
+ // The names of the providers that the user deleted,
+ // these are marked as deleted in the user's homedirectory
+ // on save if a global service file exists for it.
+ QStringList m_deletedProviders;
+ QMap <QString, QString> m_defaultEngineMap;
+ QStringList m_favoriteEngines;
+
+ FilterOptionsUI* m_dlg;
+};
+
+#endif
diff --git a/kcontrol/ebrowsing/plugins/ikws/ikwsopts_ui.ui b/kcontrol/ebrowsing/plugins/ikws/ikwsopts_ui.ui
new file mode 100644
index 000000000..fdeeb27ca
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/ikwsopts_ui.ui
@@ -0,0 +1,258 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>FilterOptionsUI</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>FilterOptionsUI</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>360</width>
+ <height>327</height>
+ </rect>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>cbEnableShortcuts</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Enable Web shortcuts</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+Enable shortcuts that allow you to quickly search for information on the web. For example, entering the shortcut &lt;b&gt;gg:KDE&lt;/b&gt; will result in a search of the word &lt;b&gt;KDE&lt;/b&gt; on the Google(TM) search engine.
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>lbDelimiter</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&amp;Keyword delimiter:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>cmbDelimiter</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Choose the delimiter that separates the keyword from the phrase or word to be searched.</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>lbDefaultEngine</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Default &amp;search engine:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>cmbDefaultEngine</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+Select the search engine to use for input boxes that provide automatic lookup services when you type in normal words and phrases instead of a URL. To disable this feature select &lt;b&gt;None&lt;/b&gt; from the list.
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="KComboBox" row="4" column="1">
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>cmbDefaultEngine</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+Select the search engine to use for input boxes that provide automatic lookup services when you type in normal words and phrases instead of a URL. To disable this feature select &lt;b&gt;None&lt;/b&gt; from the list.
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="2">
+ <property name="name">
+ <cstring>pbChange</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Chan&amp;ge...</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Modify a search provider.</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="2">
+ <property name="name">
+ <cstring>pbDelete</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>De&amp;lete</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Delete the selected search provider.</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="2">
+ <property name="name">
+ <cstring>pbNew</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;New...</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Add a search provider.</string>
+ </property>
+ </widget>
+ <spacer row="3" column="2" rowspan="3" colspan="1">
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>170</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KListView" row="0" column="0" rowspan="4" colspan="2">
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Shortcuts</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>lvSearchProviders</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>1</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="showSortIndicator">
+ <bool>true</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ <property name="treeStepSize">
+ <number>0</number>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>List of search providers, their associated shortcuts and whether they shall be listed in menus.</string>
+ </property>
+ </widget>
+ <widget class="KComboBox" row="5" column="1">
+ <item>
+ <property name="text">
+ <string>Colon</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Space</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>cmbDelimiter</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Choose the delimiter that separates the keyword from the phrase or word to be searched.</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+</widget>
+<tabstops>
+ <tabstop>cbEnableShortcuts</tabstop>
+ <tabstop>lvSearchProviders</tabstop>
+ <tabstop>pbNew</tabstop>
+ <tabstop>pbChange</tabstop>
+ <tabstop>pbDelete</tabstop>
+ <tabstop>cmbDefaultEngine</tabstop>
+ <tabstop>cmbDelimiter</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.cpp b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.cpp
new file mode 100644
index 000000000..a7e2e5239
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.cpp
@@ -0,0 +1,81 @@
+/* This file is part of the KDE project
+ Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
+ Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
+ Copyright (C) 2002, 2003 Dawit Alemayehu <adawit@kde.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <unistd.h>
+
+#include <kdebug.h>
+#include <klocale.h>
+#include <kurl.h>
+#include <kinstance.h>
+#include <kglobal.h>
+
+#include "ikwsopts.h"
+#include "kuriikwsfiltereng.h"
+#include "kuriikwsfilter.h"
+
+/**
+ * IMPORTANT: If you change anything here, please run the regression test
+ * kdelibs/kio/tests/kurifiltertest
+ */
+
+typedef KGenericFactory<KAutoWebSearch> KAutoWebSearchFactory;
+K_EXPORT_COMPONENT_FACTORY (libkuriikwsfilter, KAutoWebSearchFactory("kcmkurifilt"))
+
+KAutoWebSearch::KAutoWebSearch(QObject *parent, const char *name, const QStringList&)
+ :KURIFilterPlugin(parent, name ? name : "kuriikwsfilter", 1.0),
+ DCOPObject("KURIIKWSFilterIface")
+{
+}
+
+KAutoWebSearch::~KAutoWebSearch()
+{
+}
+
+void KAutoWebSearch::configure()
+{
+ if ( KURISearchFilterEngine::self()->verbose() )
+ kdDebug() << "KAutoWebSearch::configure: Config reload requested..." << endl;
+
+ KURISearchFilterEngine::self()->loadConfig();
+}
+
+bool KAutoWebSearch::filterURI( KURIFilterData &data ) const
+{
+ if (KURISearchFilterEngine::self()->verbose())
+ kdDebug() << "KAutoWebSearch::filterURI: '" << data.uri().url() << "'" << endl;
+
+ KURL u = data.uri();
+ if ( u.pass().isEmpty() )
+ {
+ QString result = KURISearchFilterEngine::self()->autoWebSearchQuery( data.typedString() );
+ if( !result.isEmpty() )
+ {
+ if ( KURISearchFilterEngine::self()->verbose() )
+ kdDebug () << "Filtered URL: " << result << endl;
+
+ setFilteredURI( data, KURL( result ) );
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+ return true;
+ }
+ }
+ return false;
+}
+
+#include "kuriikwsfilter.moc"
diff --git a/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.desktop b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.desktop
new file mode 100644
index 000000000..bf223f22b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.desktop
@@ -0,0 +1,70 @@
+[Desktop Entry]
+Type=Service
+Name=InternetKeywordsFilter
+Name[af]=Internetsleutelwoordefilter
+Name[az]=İnternetAçarKəliməSüzgəci
+Name[be]=Фільтр ключавых словаў
+Name[br]=SilGerioùAlc'hwezArKenrouedad
+Name[ca]=Filtre de paraules clau d'Internet
+Name[csb]=Filter internetowëch kluczowëch słów
+Name[cy]=HidlAllweddeiriauRhyngrwyd
+Name[da]=InternetNøgleordsFilter
+Name[de]=Internet-Stichwort-Filter
+Name[el]=Φίλτρο λέξεων κλειδιών διαδικτύου
+Name[eo]=Filtrilo por interretaj ŝlosilvortoj
+Name[es]=Filtro de palabras clave de Internet
+Name[et]=Interneti võtmesõnade filter
+Name[eu]=Interneteko gako-hitzen iragazkia
+Name[fa]=پالایۀ واژه‌های کلیدی اینترنت
+Name[fr]=Mots clés internet
+Name[fy]=YnternetSykwurdenFilter
+Name[hi]=इंटरनेट की-वर्ड्स फ़िल्टर
+Name[hr]=Filtar internetskih ključnih riječi
+Name[hu]=Internetes kulcsszavak szűrője
+Name[id]=FilterInternetKeyword
+Name[is]=InternetStikkorðaSía
+Name[ja]=インターネットキーワードフィルタ
+Name[ka]=ინტერნეტ საკვანძო სიტყვების ფილტრი
+Name[kk]=Интернет түйінді сөздер сүзгісі
+Name[lo]=ຕົວກອງຄຳຄົ້ນຫາເທິງອິນເຕີເນັດ
+Name[lt]=InternetoRaktažodžiųfiltras
+Name[lv]=InternetAtslēgasvārduFiltrs
+Name[mn]=Интернэт-Түлхүүр үг-Шүүгч
+Name[nb]=Filter for Internettnøkkelord
+Name[nds]=Filter för Internet-Slötelwöör
+Name[ne]=इन्टरनेट शब्दकुञ्जी फिल्टर
+Name[nl]=InternetZoektermenFilter
+Name[nn]=Filter for Internettnøkkelord
+Name[nso]=Sesekodi sa Mantsuhlokwa a Internet
+Name[oc]=Filtre de paraules clau Internet
+Name[pa]=ਇੰਟਰਨੈੱਟ ਸ਼ਬਦ ਫਿਲਟਰ
+Name[pl]=Filtr internetowych słów kluczowych
+Name[pt]=Filtro de Palavras-chave na Internet
+Name[pt_BR]=Filtro de Palavras-chave da Internet
+Name[ro]=Filtru de cuvinte cheie Internet
+Name[ru]=Фильтр ключевых слов Интернет
+Name[rw]=MuyunguruziAmagamborufunguzoInterineti
+Name[sk]=Filter Klávesových skratiek pre Internet
+Name[sl]=Filter ključnih besed za internet
+Name[sr]=Филтер кључних речи Интернета
+Name[sr@Latn]=Filter ključnih reči Interneta
+Name[sv]=Internetsökordsfilter
+Name[ta]=தேடல் மூலச்சொற்கள் வடிகட்டி
+Name[te]=ఇంటర్నెట్ కీలకపదాల గలని
+Name[tg]=Софи калидвожаҳои интернет
+Name[th]=ตัวกรองคำค้นหาบนอินเทอร์เน็ต
+Name[tr]=İnternetAnahtarKelimeSüzgeci
+Name[tt]=İnternetTöpsüzSözgeçe
+Name[uk]=Фільтр ключових слів Інтернет
+Name[uz]=Internet kalit soʻzlar filteri
+Name[uz@cyrillic]=Интернет калит сўзлар филтери
+Name[ven]=Filithara ya Khiimaipfi ya Inithanete
+Name[vi]=Trình lọc các từ khoá Mạng
+Name[wa]=PasseteMotsClésDelDaegntoele
+Name[xh]=Amagama Angundoqo ecebo lokucoca ulwelo e Internet
+Name[zh_CN]=Internet 关键字过滤
+Name[zh_TW]=Internet 關鍵字過濾
+Name[zu]=Ihluzo lamagama abalulekile e-Internet
+X-KDE-Library=libkuriikwsfilter
+ServiceTypes=KURIFilter/Plugin
+InitialPreference=1
diff --git a/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.h b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.h
new file mode 100644
index 000000000..e286b3bd6
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.h
@@ -0,0 +1,48 @@
+/* This file is part of the KDE project
+ Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
+ Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
+ Copyright (C) 2002, 2003 Dawit Alemayehu <adawit@kde.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef __KURIIKWSFILTER_H__
+#define __KURIIKWSFILTER_H__
+
+#include <dcopobject.h>
+#include <kgenericfactory.h>
+
+#include <kurifilter.h>
+
+class KInstance;
+
+class KAutoWebSearch : public KURIFilterPlugin, public DCOPObject
+{
+ K_DCOP
+ Q_OBJECT
+public:
+ KAutoWebSearch(QObject *parent = 0, const char *name = 0,
+ const QStringList &args = QStringList() );
+ ~KAutoWebSearch();
+
+ virtual bool filterURI( KURIFilterData& ) const;
+
+k_dcop:
+ virtual void configure();
+};
+
+#endif
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.upd b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.upd
new file mode 100644
index 000000000..61d11999d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.upd
@@ -0,0 +1,7 @@
+Id=post-kde3.1/cvs
+File=kuriikwsfilterrc
+Group=General
+Key=SearchEngineShortcutsEnabled,EnableWebShortcuts
+Key=InternetKeywordsSearchFallback,DefaultSearchEngine
+RemoveKey=InternetKeywordsEnabled
+RemoveKey=InternetKeywordsSelectedEngine \ No newline at end of file
diff --git a/kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.cpp b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.cpp
new file mode 100644
index 000000000..9cf0cf94d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.cpp
@@ -0,0 +1,540 @@
+
+/* This file is part of the KDE project
+
+ Copyright (C) 2002, 2003 Dawit Alemayehu <adawit@kde.org>
+ Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
+ Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
+
+ Advanced web shortcuts:
+ Copyright (C) 2001 Andreas Hochsteger <e9625392@student.tuwien.ac.at>
+
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <unistd.h>
+
+#include <qregexp.h>
+#include <qtextcodec.h>
+
+#include <kurl.h>
+#include <kdebug.h>
+#include <kconfig.h>
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <kprotocolinfo.h>
+#include <ksimpleconfig.h>
+#include <kstaticdeleter.h>
+
+#include "kuriikwsfiltereng.h"
+#include "searchprovider.h"
+
+#define PIDDBG kdDebug(7023) << "(" << getpid() << ") "
+#define PDVAR(n,v) PIDDBG << n << " = '" << v << "'\n"
+
+/**
+ * IMPORTANT: If you change anything here, please run the regression test
+ * kdelibs/kio/tests/kurifiltertest
+ */
+
+KURISearchFilterEngine *KURISearchFilterEngine::s_pSelf = 0;
+static KStaticDeleter<KURISearchFilterEngine> kurisearchfilterengsd;
+
+KURISearchFilterEngine::KURISearchFilterEngine()
+{
+ loadConfig();
+}
+
+QString KURISearchFilterEngine::webShortcutQuery( const QString& typedString ) const
+{
+ QString result;
+
+ if (m_bWebShortcutsEnabled)
+ {
+ QString search = typedString;
+ int pos = search.find(m_cKeywordDelimiter);
+
+ QString key;
+ if (pos > -1)
+ key = search.left(pos);
+ else if (m_cKeywordDelimiter == ' ' && !search.isEmpty())
+ key = search;
+
+ if (!key.isEmpty() && !KProtocolInfo::isKnownProtocol( key ))
+ {
+ // Make web shortcut keywords case-insensitive, i.e.
+ // kde == KDE == Kde == kDe == kdE
+ SearchProvider *provider = SearchProvider::findByKey(key.lower());
+
+ if (provider)
+ {
+ result = formatResult(provider->query(), provider->charset(),
+ QString::null, search.mid(pos+1), true);
+ delete provider;
+ }
+ }
+ }
+
+ return result;
+}
+
+
+QString KURISearchFilterEngine::autoWebSearchQuery( const QString& typedString ) const
+{
+ QString result;
+
+ if (m_bWebShortcutsEnabled && !m_defaultSearchEngine.isEmpty())
+ {
+ // Make sure we ignore supported protocols, e.g. "smb:", "http:"
+ int pos = typedString.find(':');
+
+ if (pos == -1 || !KProtocolInfo::isKnownProtocol(typedString.left(pos)))
+ {
+ SearchProvider *provider = SearchProvider::findByDesktopName(m_defaultSearchEngine);
+
+ if (provider)
+ {
+ result = formatResult (provider->query(), provider->charset(),
+ QString::null, typedString, true);
+ delete provider;
+ }
+ }
+ }
+
+ return result;
+}
+
+QCString KURISearchFilterEngine::name() const
+{
+ return "kuriikwsfilter";
+}
+
+KURISearchFilterEngine* KURISearchFilterEngine::self()
+{
+ if (!s_pSelf)
+ kurisearchfilterengsd.setObject( s_pSelf, new KURISearchFilterEngine );
+ return s_pSelf;
+}
+
+QStringList KURISearchFilterEngine::modifySubstitutionMap(SubstMap& map,
+ const QString& query) const
+{
+ // Returns the number of query words
+ QString userquery = query;
+
+ // Do some pre-encoding, before we can start the work:
+ {
+ int start = 0;
+ int pos = 0;
+ QRegExp qsexpr("\\\"[^\\\"]*\\\"");
+
+ // Temporary substitute spaces in quoted strings (" " -> "%20")
+ // Needed to split user query into StringList correctly.
+ while ((pos = qsexpr.search(userquery, start)) >= 0)
+ {
+ int i = 0;
+ int n = 0;
+ QString s = userquery.mid (pos, qsexpr.matchedLength());
+ while ((i = s.find(" ")) != -1)
+ {
+ s = s.replace (i, 1, "%20");
+ n++;
+ }
+ start = pos + qsexpr.matchedLength() + 2*n; // Move after last quote
+ userquery = userquery.replace (pos, qsexpr.matchedLength(), s);
+ }
+ }
+
+ // Split user query between spaces:
+ QStringList l = QStringList::split(" ", userquery.simplifyWhiteSpace());
+
+ // Back-substitute quoted strings (%20 -> " "):
+ {
+ int i = 0;
+ while ((i = userquery.find("%20")) != -1)
+ userquery = userquery.replace(i, 3, " ");
+
+ for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it )
+ *it = (*it).replace("%20", " ");
+ }
+
+ PIDDBG << "Generating substitution map:\n";
+ // Generate substitution map from user query:
+ for (unsigned int i=0; i<=l.count(); i++)
+ {
+ int j = 0;
+ int pos = 0;
+ QString v = "";
+ QString nr = QString::number(i);
+
+ // Add whole user query (\{0}) to substitution map:
+ if (i==0)
+ v = userquery;
+ // Add partial user query items to substitution map:
+ else
+ v = l[i-1];
+
+ // Back-substitute quoted strings (%20 -> " "):
+ while ((j = v.find("%20")) != -1)
+ v = v.replace(j, 3, " ");
+
+ // Insert partial queries (referenced by \1 ... \n) to map:
+ map.replace(QString::number(i), v);
+ PDVAR (" map['" + nr + "']", map[nr]);
+
+ // Insert named references (referenced by \name) to map:
+ j = 0;
+ if ((i>0) && (pos = v.find("=")) > 0)
+ {
+ QString s = v.mid(pos + 1);
+ QString k = v.left(pos);
+
+ // Back-substitute references contained in references (e.g. '\refname' substitutes to 'thisquery=\0')
+ while ((j = s.find("%5C")) != -1) s = s.replace(j, 3, "\\");
+ map.replace(k, s);
+ PDVAR (" map['" + k + "']", map[k]);
+ }
+ }
+
+ return l;
+}
+
+static QString encodeString(const QString &s, int mib)
+{
+ QStringList l = QStringList::split(" ", s, true);
+ for(QStringList::Iterator it = l.begin();
+ it != l.end(); ++it)
+ {
+ *it = KURL::encode_string(*it, mib);
+ }
+ return l.join("+");
+}
+
+QString KURISearchFilterEngine::substituteQuery(const QString& url, SubstMap &map, const QString& userquery, const int encodingMib) const
+{
+ QString newurl = url;
+ QStringList ql = modifySubstitutionMap (map, userquery);
+ int count = ql.count();
+
+ // Check, if old style '\1' is found and replace it with \{@} (compatibility mode):
+ {
+ int pos = -1;
+ if ((pos = newurl.find("\\1")) >= 0)
+ {
+ PIDDBG << "WARNING: Using compatibility mode for newurl='" << newurl
+ << "'. Please replace old style '\\1' with new style '\\{0}' "
+ "in the query definition.\n";
+ newurl = newurl.replace(pos, 2, "\\{@}");
+ }
+ }
+
+ PIDDBG << "Substitute references:\n";
+ // Substitute references (\{ref1,ref2,...}) with values from user query:
+ {
+ int pos = 0;
+ QRegExp reflist("\\\\\\{[^\\}]+\\}");
+
+ // Substitute reflists (\{ref1,ref2,...}):
+ while ((pos = reflist.search(newurl, 0)) >= 0)
+ {
+ bool found = false;
+
+ //bool rest = false;
+ QString v = "";
+ QString rlstring = newurl.mid(pos + 2, reflist.matchedLength() - 3);
+ PDVAR (" reference list", rlstring);
+
+ // \{@} gets a special treatment later
+ if (rlstring == "@")
+ {
+ v = "\\@";
+ found = true;
+ }
+
+ // TODO: strip whitespaces around commas
+ QStringList rl = QStringList::split(",", rlstring);
+ unsigned int i = 0;
+
+ while ((i<rl.count()) && !found)
+ {
+ QString rlitem = rl[i];
+ QRegExp range("[0-9]*\\-[0-9]*");
+
+ // Substitute a range of keywords
+ if (range.search(rlitem, 0) >= 0)
+ {
+ int pos = rlitem.find("-");
+ int first = rlitem.left(pos).toInt();
+ int last = rlitem.right(rlitem.length()-pos-1).toInt();
+
+ if (first == 0)
+ first = 1;
+
+ if (last == 0)
+ last = count;
+
+ for (int i=first; i<=last; i++)
+ {
+ v += map[QString::number(i)] + " ";
+ // Remove used value from ql (needed for \{@}):
+ ql[i-1] = "";
+ }
+
+ v = v.stripWhiteSpace();
+ if (!v.isEmpty())
+ found = true;
+
+ PDVAR (" range", QString::number(first) + "-" + QString::number(last) + " => '" + v + "'");
+ v = encodeString(v, encodingMib);
+ }
+ else if ( rlitem.startsWith("\"") && rlitem.endsWith("\"") )
+ {
+ // Use default string from query definition:
+ found = true;
+ QString s = rlitem.mid(1, rlitem.length() - 2);
+ v = encodeString(s, encodingMib);
+ PDVAR (" default", s);
+ }
+ else if (map.contains(rlitem))
+ {
+ // Use value from substitution map:
+ found = true;
+ PDVAR (" map['" + rlitem + "']", map[rlitem]);
+ v = encodeString(map[rlitem], encodingMib);
+
+ // Remove used value from ql (needed for \{@}):
+ QString c = rlitem.left(1);
+ if (c=="0")
+ {
+ // It's a numeric reference to '0'
+ for (QStringList::Iterator it = ql.begin(); it!=ql.end(); ++it)
+ (*it) = "";
+ }
+ else if ((c>="0") && (c<="9"))
+ {
+ // It's a numeric reference > '0'
+ int n = rlitem.toInt();
+ ql[n-1] = "";
+ }
+ else
+ {
+ // It's a alphanumeric reference
+ QStringList::Iterator it = ql.begin();
+ while ((it != ql.end()) && ((rlitem + "=") != (*it).left(rlitem.length()+1)))
+ ++it;
+ if ((rlitem + "=") == (*it).left(rlitem.length()+1))
+ (*it) = "";
+ }
+
+ // Encode '+', otherwise it would be interpreted as space in the resulting url:
+ int vpos = 0;
+ while ((vpos = v.find('+')) != -1)
+ v = v.replace (vpos, 1, "%2B");
+
+ }
+ else if (rlitem == "@")
+ {
+ v = "\\@";
+ PDVAR (" v", v);
+ }
+
+ i++;
+ }
+
+ newurl = newurl.replace(pos, reflist.matchedLength(), v);
+ }
+
+ // Special handling for \{@};
+ {
+ PDVAR (" newurl", newurl);
+ // Generate list of unmatched strings:
+ QString v = "";
+ for (unsigned int i=0; i<ql.count(); i++) {
+ v += " " + ql[i];
+ }
+ v = v.simplifyWhiteSpace();
+ PDVAR (" rest", v);
+ v = encodeString(v, encodingMib);
+
+ // Substitute \{@} with list of unmatched query strings
+ int vpos = 0;
+ while ((vpos = newurl.find("\\@")) != -1)
+ newurl = newurl.replace (vpos, 2, v);
+ }
+ }
+
+ return newurl;
+}
+
+QString KURISearchFilterEngine::formatResult( const QString& url,
+ const QString& cset1,
+ const QString& cset2,
+ const QString& query,
+ bool isMalformed ) const
+{
+ SubstMap map;
+ return formatResult (url, cset1, cset2, query, isMalformed, map);
+}
+
+QString KURISearchFilterEngine::formatResult( const QString& url,
+ const QString& cset1,
+ const QString& cset2,
+ const QString& query,
+ bool /* isMalformed */,
+ SubstMap& map ) const
+{
+ // Return nothing if userquery is empty and it contains
+ // substitution strings...
+ if (query.isEmpty() && url.find(QRegExp(QRegExp::escape("\\{"))) > 0)
+ return QString::null;
+
+ // Debug info of map:
+ if (!map.isEmpty())
+ {
+ PIDDBG << "Got non-empty substitution map:\n";
+ for(SubstMap::Iterator it = map.begin(); it != map.end(); ++it)
+ PDVAR (" map['" + it.key() + "']", it.data());
+ }
+
+ // Create a codec for the desired encoding so that we can transcode the user's "url".
+ QString cseta = cset1;
+ if (cseta.isEmpty())
+ cseta = "iso-8859-1";
+
+ QTextCodec *csetacodec = QTextCodec::codecForName(cseta.latin1());
+ if (!csetacodec)
+ {
+ cseta = "iso-8859-1";
+ csetacodec = QTextCodec::codecForName(cseta.latin1());
+ }
+
+ // Decode user query:
+ QString userquery = KURL::decode_string(query, 106 /* utf-8*/);
+
+ PDVAR ("user query", userquery);
+ PDVAR ("query definition", url);
+
+ // Add charset indicator for the query to substitution map:
+ map.replace("ikw_charset", cseta);
+
+ // Add charset indicator for the fallback query to substitution map:
+ QString csetb = cset2;
+ if (csetb.isEmpty())
+ csetb = "iso-8859-1";
+ map.replace("wsc_charset", csetb);
+
+ QString newurl = substituteQuery (url, map, userquery, csetacodec->mibEnum());
+
+ PDVAR ("substituted query", newurl);
+
+ return newurl;
+}
+
+void KURISearchFilterEngine::loadConfig()
+{
+ // Migrate from the old format, this block should remain until
+ // we can assume "every" user has upgraded to a KDE version that
+ // contains the sycoca based search provider configuration (malte).
+ // TODO: Remove in KDE 4 !!! This has been here a sufficient amount of time...
+ {
+ KSimpleConfig oldConfig(kapp->dirs()->saveLocation("config") + QString(name()) + "rc");
+ oldConfig.setGroup("General");
+
+ if (oldConfig.hasKey("SearchEngines"))
+ {
+ // User has an old config file in his local config dir
+ PIDDBG << "Migrating config file to .desktop files..." << endl;
+ QString fallback = oldConfig.readEntry("InternetKeywordsSearchFallback");
+ QStringList engines = oldConfig.readListEntry("SearchEngines");
+ for (QStringList::ConstIterator it = engines.begin(); it != engines.end(); ++it)
+ {
+ if (!oldConfig.hasGroup(*it + " Search"))
+ continue;
+
+ oldConfig.setGroup(*it + " Search");
+ QString query = oldConfig.readEntry("Query");
+ QStringList keys = oldConfig.readListEntry("Keys");
+ QString charset = oldConfig.readEntry("Charset");
+ oldConfig.deleteGroup(*it + " Search");
+
+ QString name;
+ for (QStringList::ConstIterator key = keys.begin(); key != keys.end(); ++key)
+ {
+ // take the longest key as name for the .desktop file
+ if ((*key).length() > name.length())
+ name = *key;
+ }
+
+ if (*it == fallback)
+ fallback = name;
+ SearchProvider *provider = SearchProvider::findByKey(name);
+
+ if (provider)
+ {
+ // If this entry has a corresponding global entry
+ // that comes with KDE's default configuration,
+ // compare both and if thei're equal, don't
+ // create a local copy
+ if (provider->name() == *it && provider->query() == query &&
+ provider->keys() == keys && (provider->charset() == charset ||
+ (provider->charset().isEmpty() && charset.isEmpty())))
+ {
+ PIDDBG << *it << " is unchanged, skipping" << endl;
+ continue;
+ }
+
+ delete provider;
+ }
+
+ KSimpleConfig desktop(kapp->dirs()->saveLocation("services", "searchproviders/") + name + ".desktop");
+ desktop.setGroup("Desktop Entry");
+ desktop.writeEntry("Type", "Service");
+ desktop.writeEntry("ServiceTypes", "SearchProvider");
+ desktop.writeEntry("Name", *it);
+ desktop.writeEntry("Query", query);
+ desktop.writeEntry("Keys", keys);
+ desktop.writeEntry("Charset", charset);
+
+ PIDDBG << "Created searchproviders/" << name << ".desktop for " << *it << endl;
+ }
+
+ oldConfig.deleteEntry("SearchEngines", false);
+ oldConfig.setGroup("General");
+ oldConfig.writeEntry("InternetKeywordsSearchFallback", fallback);
+
+ PIDDBG << "...completed" << endl;
+ }
+ }
+
+ PIDDBG << "Keywords Engine: Loading config..." << endl;
+
+ // Load the config.
+ KConfig config( name() + "rc", false, false );
+ config.setGroup( "General" );
+
+ m_cKeywordDelimiter = config.readNumEntry("KeywordDelimiter", ':');
+ m_bWebShortcutsEnabled = config.readBoolEntry("EnableWebShortcuts", true);
+ m_defaultSearchEngine = config.readEntry("DefaultSearchEngine");
+ m_bVerbose = config.readBoolEntry("Verbose", false);
+
+ // Use either a white space or a : as the keyword delimiter...
+ if (strchr (" :",m_cKeywordDelimiter) == 0)
+ m_cKeywordDelimiter = ':';
+
+ PIDDBG << "Keyword Delimiter: " << m_cKeywordDelimiter << endl;
+ PIDDBG << "Default Search Engine: " << m_defaultSearchEngine << endl;
+ PIDDBG << "Web Shortcuts Enabled: " << m_bWebShortcutsEnabled << endl;
+ PIDDBG << "Verbose: " << m_bVerbose << endl;
+}
diff --git a/kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.h b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.h
new file mode 100644
index 000000000..d45c17033
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.h
@@ -0,0 +1,77 @@
+/* This file is part of the KDE project
+
+ Copyright (C) 2002,2003 Dawit Alemayehu <adawit@kde.org>
+ Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
+ Copyright (C) 1999 Yves Arrouye <yves@realnames.com>
+
+ Advanced web shortcuts
+ Copyright (C) 2001 Andreas Hochsteger <e9625392@student.tuwien.ac.at>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef __KURISearchFILTERENGINE_H__
+#define __KURISearchFILTERENGINE_H__
+
+#include <qvaluelist.h>
+#include <qstringlist.h>
+
+#include <kservice.h>
+
+class KURL;
+
+
+class KURISearchFilterEngine
+{
+public:
+ typedef QMap <QString, QString> SubstMap;
+
+ KURISearchFilterEngine();
+ ~KURISearchFilterEngine() {};
+
+ QCString name() const;
+
+ QString webShortcutQuery (const QString&) const;
+
+ QString autoWebSearchQuery (const QString&) const;
+
+ bool verbose() const { return m_bVerbose; }
+
+ void loadConfig();
+
+ static KURISearchFilterEngine *self();
+
+protected:
+ QString formatResult (const QString& url, const QString& cset1, const QString& cset2,
+ const QString& query, bool isMalformed) const;
+
+ QString formatResult (const QString& url, const QString& cset1, const QString& cset2,
+ const QString& query, bool isMalformed, SubstMap& map) const;
+
+private:
+ QStringList modifySubstitutionMap (SubstMap& map, const QString& query) const;
+
+ QString substituteQuery (const QString& url, SubstMap &map,
+ const QString& userquery, const int encodingMib) const;
+
+ bool m_bVerbose;
+ bool m_bWebShortcutsEnabled;
+ char m_cKeywordDelimiter;
+
+ QString m_defaultSearchEngine;
+ static KURISearchFilterEngine *s_pSelf;
+};
+
+#endif
diff --git a/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.cpp b/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.cpp
new file mode 100644
index 000000000..d56220935
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.cpp
@@ -0,0 +1,90 @@
+/* This file is part of the KDE project
+ Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
+ Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
+ Copyright (C) 2002, 2003 Dawit Alemayehu <adawit@kde.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#include <unistd.h>
+
+#include <kdebug.h>
+#include <klocale.h>
+#include <kinstance.h>
+#include <kglobal.h>
+
+#include "ikwsopts.h"
+#include "kuriikwsfiltereng.h"
+#include "kurisearchfilter.h"
+
+/**
+ * IMPORTANT: If you change anything here, please run the regression test
+ * kdelibs/kio/tests/kurifiltertest
+ */
+
+typedef KGenericFactory<KURISearchFilter> KURISearchFilterFactory;
+K_EXPORT_COMPONENT_FACTORY(libkurisearchfilter, KURISearchFilterFactory("kcmkurifilt"))
+
+KURISearchFilter::KURISearchFilter(QObject *parent, const char *name,
+ const QStringList &)
+ :KURIFilterPlugin(parent, name ? name : "kurisearchfilter", 1.0),
+ DCOPObject("KURISearchFilterIface")
+{
+}
+
+KURISearchFilter::~KURISearchFilter()
+{
+}
+
+void KURISearchFilter::configure()
+{
+ if ( KURISearchFilterEngine::self()->verbose() )
+ kdDebug() << "KURISearchFilter::configure: Config reload request..." << endl;
+
+ KURISearchFilterEngine::self()->loadConfig();
+}
+
+bool KURISearchFilter::filterURI( KURIFilterData &data ) const
+{
+ if ( KURISearchFilterEngine::self()->verbose() )
+ kdDebug() << "KURISearchFilter::filterURI: '" << data.typedString() << "'" << endl;
+
+ QString result = KURISearchFilterEngine::self()->webShortcutQuery( data.typedString() );
+
+ if ( !result.isEmpty() )
+ {
+ if ( KURISearchFilterEngine::self()->verbose() )
+ kdDebug() << "Filtered URL: " << result << endl;
+
+ setFilteredURI( data, KURL( result ) );
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+ return true;
+ }
+
+ return false;
+}
+
+KCModule *KURISearchFilter::configModule(QWidget *parent, const char *) const
+{
+ return new FilterOptions( KURISearchFilterFactory::instance(), parent, "kcmkurifilt");
+}
+
+QString KURISearchFilter::configName() const
+{
+ return i18n("Search F&ilters");
+}
+
+#include "kurisearchfilter.moc"
diff --git a/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.desktop b/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.desktop
new file mode 100644
index 000000000..0b1a36cfd
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.desktop
@@ -0,0 +1,68 @@
+[Desktop Entry]
+Type=Service
+Name=SearchKeywordsFilter
+Name[af]=Soektogsleutelwoordfilter
+Name[az]=DaramaKəliməSüzgəci
+Name[be]=Фільтр пошуку ключавых словаў
+Name[br]=SilGerioùAlc'hwezKlask
+Name[ca]=Filtre de paraules de recerca
+Name[csb]=Filter kluczowëch słów
+Name[cy]=HidlChwilioAllweddeiriau
+Name[da]=SøgNøgleordsFilter
+Name[de]=Suchstichwort-Filter
+Name[el]=Φίλτρο λέξεων κλειδιών αναζήτησης
+Name[eo]=Filtrilo por serĉaj ŝlosilvortoj
+Name[es]=Filtro de palabras clave de búsqueda
+Name[eu]=Bilaketarako gako-hitzen iragazkia
+Name[fa]=پالایۀ واژه‌های کلیدی جستجو
+Name[fr]=Filtre de mots clés de recherche
+Name[fy]=SykwurdenFilter
+Name[he]=מסנן מילות מפתח לחיפוש
+Name[hi]=सर्च की-वर्ड्स फ़िल्टर
+Name[hr]=Filtar ključnih riječi pretraživanja
+Name[hu]=Kulcsszavak keresési szűrője
+Name[id]=FilterPencarianKeyword
+Name[is]=StikkorðaLeitarSía
+Name[ja]=キーワード検索フィルタ
+Name[ka]=ძიების საკვანძო სიტყვების ფილტრი
+Name[kk]=Іздеу түйінді сөздер сүзгісі
+Name[lo]=ຕົວກອງຄຳຄົ້ນຫາ
+Name[lt]=PaieškosRaktažodžiųFiltras
+Name[lv]=MeklēšanasAtslēgasvārduFiltrs
+Name[mn]=Хайх түлхүүр үг-Шүүгч
+Name[nds]=Filter för Söökafkörten
+Name[ne]=शब्दकुञ्जी फिल्टर खोजी गर्नुहोस्
+Name[nl]=ZoekTermenFilter
+Name[nso]=Sesekodi sa Mantsuhlokwa a Nyako
+Name[oc]=Filtre de paraules de cerca
+Name[pa]=ਖੋਜ ਸ਼ਬਦ ਫਿਲਟਰ
+Name[pl]=Filtr słów kluczowych
+Name[pt]=Filtro de Palavras-chave de Busca
+Name[pt_BR]=Filtro de Procura de Palavras-Chave
+Name[ro]=Filtru de cuvinte cheie de căutare
+Name[ru]=Фильтр ключевых слов поиска
+Name[rw]=MuyunguruziAmagamborufunguzoIshakisha
+Name[sk]=Filter Kľúčových slov Hľadania
+Name[sl]=Filter ključnih besed za iskanje
+Name[sr]=Филтер речи за претраживање
+Name[sr@Latn]=Filter reči za pretraživanje
+Name[sv]=Sökordsökningsfilter
+Name[ta]=முக்கிய வார்த்தைகள் வடிகட்டியை தேடு
+Name[te]=అన్వెషణ కీలకపదాల గలని
+Name[tg]=Софи калидвожаҳои ҷустуҷӯӣ
+Name[th]=ตัวกรองคำค้นหา
+Name[tr]=TaramaKelimeSüzgeci
+Name[tt]=EzläwTöpsuzSözgeçe
+Name[uk]=Фільтр ключових слів Інтернет
+Name[uz]=Qidirish kalit soʻzlar filteri
+Name[uz@cyrillic]=Қидириш калит сўзлар филтери
+Name[ven]=Filithara ya Khiimaipfi yau setsha
+Name[vi]=Trình tìm các từ khoá
+Name[wa]=PasseteCweraedjeDiMotsClés
+Name[xh]=Phendla Amagama Angundoqo Ecebo Lokucoca Ulwelo
+Name[zh_CN]=搜索关键字过滤
+Name[zh_TW]=搜索關鍵字過濾
+Name[zu]=Ihluzo lamagama abalulekile okusesha
+X-KDE-Library=libkurisearchfilter
+ServiceTypes=KURIFilter/Plugin
+InitialPreference=4
diff --git a/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.h b/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.h
new file mode 100644
index 000000000..0b8dd1b14
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.h
@@ -0,0 +1,50 @@
+/* This file is part of the KDE project
+ Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
+ Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
+ Copyright (C) 2002, 2003 Dawit Alemayehu <adawit@kde.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef __KURISEARCHFILTER_H__
+#define __KURISEARCHFILTER_H__
+
+#include <dcopobject.h>
+#include <kgenericfactory.h>
+
+#include <kurifilter.h>
+
+class KInstance;
+
+class KURISearchFilter : public KURIFilterPlugin, public DCOPObject
+{
+ Q_OBJECT
+ K_DCOP
+public:
+ KURISearchFilter(QObject *parent = 0, const char *name = 0,
+ const QStringList &args = QStringList() );
+ ~KURISearchFilter();
+
+ virtual bool filterURI( KURIFilterData& ) const;
+ virtual KCModule *configModule(QWidget *parent = 0, const char *name = 0) const;
+ virtual QString configName() const;
+
+k_dcop:
+ virtual void configure();
+};
+
+#endif
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchprovider.cpp b/kcontrol/ebrowsing/plugins/ikws/searchprovider.cpp
new file mode 100644
index 000000000..c9e13dc1f
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchprovider.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2000 Malte Starostik <malte@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <ktrader.h>
+
+#include "searchprovider.h"
+
+SearchProvider::SearchProvider(const KService::Ptr service)
+ : m_dirty(false)
+{
+ m_desktopEntryName = service->desktopEntryName();
+ m_name = service->name();
+ m_query = service->property("Query").toString();
+ m_keys = service->property("Keys").toStringList();
+ m_charset = service->property("Charset").toString();
+}
+
+void SearchProvider::setName(const QString &name)
+{
+ if (m_name == name)
+ return;
+ m_name = name;
+ m_dirty = true;
+}
+
+void SearchProvider::setQuery(const QString &query)
+{
+ if (m_query == query)
+ return;
+ m_query = query;
+ m_dirty = true;
+}
+
+void SearchProvider::setKeys(const QStringList &keys)
+{
+ if (m_keys == keys)
+ return;
+ m_keys = keys;
+ m_dirty = true;
+}
+
+void SearchProvider::setCharset(const QString &charset)
+{
+ if (m_charset == charset)
+ return;
+ m_charset = charset;
+ m_dirty = true;
+}
+
+SearchProvider *SearchProvider::findByDesktopName(const QString &name)
+{
+ KService::Ptr service =
+ KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(name));
+ return service ? new SearchProvider(service) : 0;
+}
+
+SearchProvider *SearchProvider::findByKey(const QString &key)
+{
+ KTrader::OfferList providers =
+ KTrader::self()->query("SearchProvider", QString("'%1' in Keys").arg(key));
+ return providers.count() ? new SearchProvider(providers[0]) : 0;
+}
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchprovider.desktop b/kcontrol/ebrowsing/plugins/ikws/searchprovider.desktop
new file mode 100644
index 000000000..35bb3242a
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchprovider.desktop
@@ -0,0 +1,91 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=SearchProvider
+Comment=Search Engine
+Comment[af]=Soektog Masjien
+Comment[ar]=محرك البحث
+Comment[az]=Axtarış Mühərriki
+Comment[be]=Рухавік пошуку
+Comment[bn]=সার্চ ইঞ্জিন
+Comment[br]=Keflusker klask
+Comment[bs]=Tražilica
+Comment[ca]=Motor de recerca
+Comment[cs]=Vyhledávací stroj
+Comment[csb]=Szëkôrz
+Comment[cy]=Peiriant Chwilio
+Comment[da]=Søgemaskine
+Comment[de]=Suchmaschine
+Comment[el]=Μηχανή αναζήτησης
+Comment[eo]=Serĉilo
+Comment[es]=Motor de búsqueda
+Comment[et]=Otsingumootor
+Comment[eu]=Bilaketa motorea
+Comment[fa]=موتور جستجو
+Comment[fi]=Hakukone
+Comment[fo]=Leitiskipan
+Comment[fr]=Moteur de recherche
+Comment[fy]=Sykmasine
+Comment[ga]=Inneall Cuardaigh
+Comment[gl]=Ferramenta de Procura
+Comment[he]=מנוע חיפוש
+Comment[hi]=खोज इंजिन
+Comment[hr]=Tražilica
+Comment[hu]=Keresőmotor
+Comment[is]=Leitarvél
+Comment[it]=Motore di ricerca
+Comment[ja]=検索エンジン
+Comment[ka]=საძიებო სისტემა
+Comment[kk]=Іздеу құралы
+Comment[km]=ម៉ាស៊ីន​ស្វែងរក
+Comment[ko]=검색 엔진
+Comment[lo]=ກົນໄກການຄົ້ນຫາ
+Comment[lt]=Paieškos tarnyba
+Comment[lv]=Meklēšanas dzinējs
+Comment[mk]=Машина за пребарување
+Comment[mn]=Хайлтын машин
+Comment[ms]=Enjin Carian
+Comment[mt]=Magna tat-Tfittxija
+Comment[nb]=Søkemotor
+Comment[nds]=Söökmaschien
+Comment[ne]=इन्जीन खोज्नुहोस्
+Comment[nl]=Zoekmachine
+Comment[nn]=Søkjemotor
+Comment[nso]=Engine ya Nyako
+Comment[pa]=ਖੋਜ ਇੰਜਣ
+Comment[pl]=Wyszukiwarka
+Comment[pt]=Motor de Busca
+Comment[pt_BR]=Mecanismo de procura
+Comment[ro]=Motor de căutare
+Comment[ru]=Поисковая машина
+Comment[rw]=Moteri Ishakisha
+Comment[se]=Ohcanmotor
+Comment[sk]=Vyhľadávač
+Comment[sl]=Iskalnik
+Comment[sr]=Претраживачка машина
+Comment[sr@Latn]=Pretraživačka mašina
+Comment[ss]=Injini yekusesha
+Comment[sv]=Sökmotor
+Comment[ta]=தேடு இயந்திரம்
+Comment[tg]=Мошини ҷустуҷӯӣ
+Comment[th]=เครื่องมือสำหรับค้นหา
+Comment[tr]=Arama Motoru
+Comment[tt]=Ezläw Maşínası
+Comment[uk]=Механізм пошуку
+Comment[uz]=Qidirish vositasi
+Comment[uz@cyrillic]=Қидириш воситаси
+Comment[ven]=Nzhini yau setsha
+Comment[vi]=Máy Tìm kiếm
+Comment[wa]=Ricwerrece
+Comment[xh]=Phendla Injini
+Comment[zh_CN]=搜索引擎
+Comment[zh_TW]=搜索引擎
+Comment[zu]=Injini Yokusesha
+
+[PropertyDef::Keys]
+Type=QStringList
+
+[PropertyDef::Query]
+Type=QString
+
+[PropertyDef::Charset]
+Type=QString
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchprovider.h b/kcontrol/ebrowsing/plugins/ikws/searchprovider.h
new file mode 100644
index 000000000..b7916892c
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchprovider.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2000 Malte Starostik <malte@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __SEARCHPROVIDER_H___
+#define __SEARCHPROVIDER_H___
+
+#include <kservice.h>
+
+class SearchProvider
+{
+public:
+ SearchProvider() : m_dirty(false) {};
+ SearchProvider(const KService::Ptr service);
+
+ const QString &desktopEntryName() const { return m_desktopEntryName; }
+ const QString &name() const { return m_name; }
+ const QString &query() const { return m_query; }
+ const QStringList &keys() const { return m_keys; }
+ const QString &charset() const { return m_charset; }
+ bool isDirty() const { return m_dirty; }
+
+ void setName(const QString &);
+ void setQuery(const QString &);
+ void setKeys(const QStringList &);
+ void setCharset(const QString &);
+
+ static SearchProvider *findByDesktopName(const QString &);
+ static SearchProvider *findByKey(const QString &);
+private:
+ QString m_desktopEntryName;
+ QString m_name;
+ QString m_query;
+ QStringList m_keys;
+ QString m_charset;
+
+ bool m_dirty;
+};
+
+#endif
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.cpp b/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.cpp
new file mode 100644
index 000000000..ca7161b1c
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.cpp
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2000 Malte Starostik <malte@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qwhatsthis.h>
+
+#include <kapplication.h>
+#include <klocale.h>
+#include <kglobal.h>
+#include <kcharsets.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+
+#include "searchproviderdlg_ui.h"
+#include "searchproviderdlg.h"
+#include "searchprovider.h"
+
+SearchProviderDialog::SearchProviderDialog(SearchProvider *provider,
+ QWidget *parent, const char *name)
+ :KDialogBase(parent, name, true, QString::null, Ok|Cancel),
+ m_provider(provider)
+{
+ m_dlg = new SearchProviderDlgUI (this);
+ setMainWidget(m_dlg);
+
+ enableButtonSeparator(true);
+
+ m_dlg->leQuery->setMinimumWidth(kapp->fontMetrics().maxWidth() * 40);
+
+ connect(m_dlg->leName, SIGNAL(textChanged(const QString &)), SLOT(slotChanged()));
+ connect(m_dlg->leQuery, SIGNAL(textChanged(const QString &)), SLOT(slotChanged()));
+ connect(m_dlg->leShortcut, SIGNAL(textChanged(const QString &)), SLOT(slotChanged()));
+
+ // Data init
+ QStringList charsets = KGlobal::charsets()->availableEncodingNames();
+ charsets.prepend(i18n("Default"));
+ m_dlg->cbCharset->insertStringList(charsets);
+
+ if (m_provider)
+ {
+ setPlainCaption(i18n("Modify Search Provider"));
+ m_dlg->leName->setText(m_provider->name());
+ m_dlg->leQuery->setText(m_provider->query());
+ m_dlg->leShortcut->setText(m_provider->keys().join(","));
+ m_dlg->cbCharset->setCurrentItem(m_provider->charset().isEmpty() ? 0 : charsets.findIndex(m_provider->charset()));
+ m_dlg->leName->setEnabled(false);
+ m_dlg->leQuery->setFocus();
+ }
+ else
+ {
+ setPlainCaption(i18n("New Search Provider"));
+ m_dlg->leName->setFocus();
+ enableButton(Ok, false);
+ }
+}
+
+void SearchProviderDialog::slotChanged()
+{
+ enableButton(Ok, !(m_dlg->leName->text().isEmpty()
+ || m_dlg->leShortcut->text().isEmpty()
+ || m_dlg->leQuery->text().isEmpty()));
+}
+
+void SearchProviderDialog::slotOk()
+{
+ if ((m_dlg->leQuery->text().find("\\{") == -1)
+ && KMessageBox::warningContinueCancel(0,
+ i18n("The URI does not contain a \\{...} placeholder for the user query.\n"
+ "This means that the same page is always going to be visited, "
+ "regardless of what the user types."),
+ QString::null, i18n("Keep It")) == KMessageBox::Cancel)
+ return;
+
+ if (!m_provider)
+ m_provider = new SearchProvider;
+ m_provider->setName(m_dlg->leName->text().stripWhiteSpace());
+ m_provider->setQuery(m_dlg->leQuery->text().stripWhiteSpace());
+ m_provider->setKeys(QStringList::split(",", m_dlg->leShortcut->text().stripWhiteSpace()));
+ m_provider->setCharset(m_dlg->cbCharset->currentItem() ? m_dlg->cbCharset->currentText() : QString::null);
+ KDialog::accept();
+}
+
+#include "searchproviderdlg.moc"
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.h b/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.h
new file mode 100644
index 000000000..5abb2f057
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2000 Malte Starostik <malte@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __SEARCHPROVIDERDLG_H___
+#define __SEARCHPROVIDERDLG_H___
+
+#include <kdialogbase.h>
+
+class SearchProvider;
+class SearchProviderDlgUI;
+
+class SearchProviderDialog : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ SearchProviderDialog(SearchProvider *provider, QWidget *parent = 0, const char *name = 0);
+
+ SearchProvider *provider() { return m_provider; }
+
+protected slots:
+ void slotChanged();
+ void slotOk();
+
+private:
+ SearchProvider *m_provider;
+ SearchProviderDlgUI *m_dlg;
+};
+
+#endif
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg_ui.ui b/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg_ui.ui
new file mode 100644
index 000000000..1a507c0ff
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviderdlg_ui.ui
@@ -0,0 +1,137 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>SearchProviderDlgUI</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>SearchProviderDlgUI</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>399</width>
+ <height>206</height>
+ </rect>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="KLineEdit" row="1" column="0">
+ <property name="name">
+ <cstring>leName</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enter the human readable name of the search provider here.</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="6" column="0">
+ <property name="name">
+ <cstring>lbCharset</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Charset:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>cbCharset</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Select the character set that will be used to encode your search query</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>lbQuery</cstring>
+ </property>
+ <property name="text">
+ <string>Search &amp;URI:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>leQuery</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+Enter the URI that is used to do a search on the search engine here.&lt;br/&gt;The whole text to be searched for can be specified as \{@} or \{0}.&lt;br/&gt;
+Recommended is \{@}, since it removes all query variables (name=value) from the resulting string whereas \{0} will be substituted with the unmodified query string.&lt;br/&gt;You can use \{1} ... \{n} to specify certain words from the query and \{name} to specify a value given by 'name=value' in the user query.&lt;br/&gt;In addition it is possible to specify multiple references (names, numbers and strings) at once (\{name1,name2,...,"string"}).&lt;br/&gt;The first matching value (from the left) will be used as substitution value for the resulting URI.&lt;br/&gt;A quoted string can be used as default value if nothing matches from the left of the reference list.
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>lbName</cstring>
+ </property>
+ <property name="text">
+ <string>Search &amp;provider name:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>leName</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enter the human readable name of the search provider here.</string>
+ </property>
+ </widget>
+ <widget class="KLineEdit" row="5" column="0">
+ <property name="name">
+ <cstring>leShortcut</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+The shortcuts entered here can be used as a pseudo-URI scheme in KDE. For example, the shortcut &lt;b&gt;av&lt;/b&gt; can be used as in &lt;b&gt;av&lt;/b&gt;:&lt;b&gt;my search&lt;/b&gt;
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>lbShortcut</cstring>
+ </property>
+ <property name="text">
+ <string>UR&amp;I shortcuts:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>leShortcut</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+The shortcuts entered here can be used as a pseudo-URI scheme in KDE. For example, the shortcut &lt;b&gt;av&lt;/b&gt; can be used as in &lt;b&gt;av&lt;/b&gt;:&lt;b&gt;my search&lt;/b&gt;
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="KLineEdit" row="3" column="0">
+ <property name="name">
+ <cstring>leQuery</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;qt&gt;
+Enter the URI that is used to do a search on the search engine here.&lt;br/&gt;The whole text to be searched for can be specified as \{@} or \{0}.&lt;br/&gt;
+Recommended is \{@}, since it removes all query variables (name=value) from the resulting string whereas \{0} will be substituted with the unmodified query string.&lt;br/&gt;You can use \{1} ... \{n} to specify certain words from the query and \{name} to specify a value given by 'name=value' in the user query.&lt;br/&gt;In addition it is possible to specify multiple references (names, numbers and strings) at once (\{name1,name2,...,"string"}).&lt;br/&gt;The first matching value (from the left) will be used as substitution value for the resulting URI.&lt;br/&gt;A quoted string can be used as default value if nothing matches from the left of the reference list.
+&lt;/qt&gt;</string>
+ </property>
+ </widget>
+ <widget class="KComboBox" row="7" column="0">
+ <property name="name">
+ <cstring>cbCharset</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Select the character set that will be used to encode your search query.</string>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<tabstops>
+ <tabstop>leName</tabstop>
+ <tabstop>leQuery</tabstop>
+ <tabstop>leShortcut</tabstop>
+ <tabstop>cbCharset</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>klineedit.h</includehint>
+ <includehint>klineedit.h</includehint>
+ <includehint>klineedit.h</includehint>
+ <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/Makefile.am b/kcontrol/ebrowsing/plugins/ikws/searchproviders/Makefile.am
new file mode 100644
index 000000000..66a6ab8bf
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/Makefile.am
@@ -0,0 +1,91 @@
+# List generated with ls -1 *.desktop | sed -e 's/^/\t\t/;s/$/ \\/'
+services_DATA = \
+ acronym.desktop \
+ alexa.desktop \
+ alexa_url.desktop \
+ alltheweb.desktop \
+ altavista.desktop \
+ amg.desktop \
+ appsy.desktop \
+ austronaut.desktop \
+ backports.desktop \
+ bugft.desktop \
+ bugno.desktop \
+ call.desktop \
+ cia.desktop \
+ citeseer.desktop \
+ cpan.desktop \
+ ctan_cat.desktop \
+ ctan.desktop \
+ dbug.desktop \
+ de2en.desktop \
+ de2fr.desktop \
+ deb.desktop \
+ dmoz.desktop \
+ docbook.desktop \
+ doi.desktop \
+ en2de.desktop \
+ en2es.desktop \
+ en2fr.desktop \
+ en2it.desktop \
+ es2en.desktop \
+ excite.desktop \
+ feedster.desktop \
+ foldoc.desktop \
+ fr2de.desktop \
+ fr2en.desktop \
+ freedb.desktop \
+ freshmeat.desktop \
+ froogle.desktop \
+ fsd.desktop \
+ google_advanced.desktop \
+ google.desktop \
+ google_groups.desktop \
+ google_images.desktop \
+ google_lucky.desktop \
+ google_movie.desktop \
+ google_news.desktop \
+ gracenote.desktop \
+ grec.desktop \
+ hotbot.desktop \
+ hyperdictionary.desktop \
+ hyperdictionary_thesaurus.desktop \
+ imdb.desktop \
+ it2en.desktop \
+ jeeves.desktop \
+ kde.desktop \
+ kde_websvn.desktop \
+ katatudo.desktop \
+ leo.desktop \
+ lycos.desktop \
+ mamma.desktop \
+ metacrawler.desktop \
+ msdn.desktop \
+ netcraft.desktop \
+ nl-telephone.desktop \
+ nl-teletekst.desktop \
+ pgpkeys.desktop \
+ php.desktop \
+ python.desktop \
+ qt.desktop \
+ qt3.desktop \
+ rae.desktop \
+ rfc.desktop \
+ rpmfind.desktop \
+ ruby_application_archive.desktop \
+ seek.desktop \
+ sourceforge.desktop \
+ technorati.desktop \
+ technoratitags.desktop \
+ thesaurus.desktop \
+ tvtome.desktop \
+ uspto.desktop \
+ vivisimo.desktop \
+ voila.desktop \
+ webster.desktop \
+ whatis.desktop \
+ wikipedia.desktop \
+ wiktionary.desktop \
+ wordref.desktop
+
+servicesdir = $(kde_servicesdir)/searchproviders
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/acronym.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/acronym.desktop
new file mode 100644
index 000000000..ddd1039d4
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/acronym.desktop
@@ -0,0 +1,83 @@
+[Desktop Entry]
+Type=Service
+Name=Acronym Database
+Name[af]=Akroniem Databasis
+Name[ar]=قاعدة بيانات النحت الأوائلي ( Acronym )
+Name[az]=Akronim Kəlimə Databeyzi
+Name[be]=Скарачэнні
+Name[bn]=অ্যাক্রোনিম ডেটাবেস
+Name[bs]=Baza akronima
+Name[ca]=Base de dades d'acrònims
+Name[cs]=Databáze akronymů
+Name[csb]=Baza akronimów
+Name[cy]=Cronfa Llythrenwau
+Name[da]=Akronymdatabase
+Name[de]=Acronym-Datenbank
+Name[el]=Βάση δεδομένων αρκτικόλεξου
+Name[eo]=Mallongigo-datumbazo
+Name[es]=Base de datos Acronym
+Name[et]=Akronüümide andmebaas
+Name[eu]=Acronym datu-basea
+Name[fa]=دادگان سرنام
+Name[fi]=Akronyymitietokanta
+Name[fo]=Styttingardátugrunnur
+Name[fr]=Base de données Acronym
+Name[fy]=Acroniemen databank
+Name[ga]=Bunachar Sonraí Acrainmeacha
+Name[gl]=Base de Datos de Acrónimos
+Name[he]=בסיס נתונים של מילים נרדפות
+Name[hi]=एक्रोनिम डाटाबेस
+Name[hr]=Baza podataka kratica
+Name[hu]=Mozaikszó-adatbázis
+Name[is]=Samheitagrunnur
+Name[it]=Database acronimi
+Name[ka]=აკრონიმთა ბაზა
+Name[kk]=Қысқартулар дерек қоры
+Name[km]=មូលដ្ឋាន​ទិន្នន័យ​អក្សរ​កាត់
+Name[ko]=두문자어 정보
+Name[lo]=ຖານຂໍ້ມູນ Acronym
+Name[lt]=Akronimų duomenų bazė
+Name[lv]=Akronīmu Datubāze
+Name[mk]=База на податоци со акроними
+Name[mn]=Acronym-Өгөгдлийн бааз
+Name[ms]=Pangkalan Data Akronim
+Name[mt]=Database ta' taqsiriet
+Name[nb]=Forkortingsdatabase
+Name[nds]=Akronüm-Datenbank
+Name[ne]=एक्रोनम डेटाबेस
+Name[nl]=Acroniemen database
+Name[nn]=Forkortingsdatabase
+Name[nso]=Database ya Acronym
+Name[pa]=ਅਕਰੋਨਮ ਡਾਟਾਬੇਸ
+Name[pl]=Baza akronimów
+Name[pt]=Base de Dados de Acrónimos
+Name[pt_BR]=Banco de Acrônimos
+Name[ro]=Bază de date de acronime
+Name[ru]=База данных акронимов
+Name[rw]=Ububikoshingiro bw'Impine
+Name[se]=Oanádusdiehtovuođđu
+Name[sk]=Databáza skratiek
+Name[sl]=Zbirka okrajšav
+Name[sr]=База скраћеница
+Name[sr@Latn]=Baza skraćenica
+Name[ss]=Silulu semniningwane yetifinyeto
+Name[ta]=குறுஞ்சொற் தரவுத்தளம்
+Name[tg]=Бонки иттилооти маҳқуф
+Name[th]=ฐานข้อมูล Acronym
+Name[tr]=Eş Kelime Veritabanı
+Name[tt]=Qısqartma Biremlege
+Name[uk]=База даних акронімів
+Name[uz]=Qisqartma maʼlumot bazasi
+Name[uz@cyrillic]=Қисқартма маълумот базаси
+Name[ven]=Databeizi ya tshikau
+Name[vi]=Cơ sở dữ liệu Viết tắt
+Name[wa]=Båzes di dnêyes d' acronimes
+Name[xh]=Isiseko sedata Segama elenziwe ngonoobumba bamanye amagama
+Name[zh_CN]=首字母缩写数据库
+Name[zh_TW]=Acronym 資料庫
+Name[zu]=Isiqu sedata samagama asho okufanayo
+ServiceTypes=SearchProvider
+Keys=ad,acro,acronym
+Query=http://www.chemie.de/tools/acronym.php3?language=e&acronym=\\{@}
+Query[ne]=http://www.chemie.de/tools/acronym.php3?language=eacronym=\\{@}
+Query[sk]=http://www.chemie.de/tools/acronym.php3?language=sk&acronym=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa.desktop
new file mode 100644
index 000000000..aaa75e772
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Type=Service
+Name=Alexa
+Name[bn]=অ্যালেক্সা
+Name[eo]=Aleksa
+Name[hi]=अलेक्सा
+Name[lo]=ສຸວັນທອງ
+Name[ne]=एलेक्सा
+Name[pa]=ਅਲੀਕਸਾ
+Name[ta]=அலெக்சா
+Name[te]=ఎలెక్సా
+ServiceTypes=SearchProvider
+Keys=al,alexa
+Query=http://info.alexa.com/search?q=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop
new file mode 100644
index 000000000..70b93be4d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop
@@ -0,0 +1,43 @@
+[Desktop Entry]
+Type=Service
+Name=Alexa URL
+Name[bn]=অ্যালেক্সা ইউ-আর-এল
+Name[br]=URL Alexa
+Name[ca]=URL d'Alexa
+Name[csb]=Lënk Alexa
+Name[da]=Alexa-URL
+Name[de]=Alexa-Adresse
+Name[eo]=Aleksa URL
+Name[es]=URL de Alexa
+Name[fa]=نشانی وب Alexa
+Name[fr]=URL Alexa
+Name[fy]=Alexa URL-adres
+Name[ga]=URL Alexa
+Name[he]=כתובת של Alexa
+Name[hi]=एलेक्सा यूआरएल
+Name[is]=Alexa slóð
+Name[it]=URL Alexa
+Name[lo]=ສຸວັນທອງ
+Name[mn]=Alexa-Хаяг
+Name[ms]=URL Alexa
+Name[mt]=URL Alexa
+Name[nb]=Alexa-nettadresse
+Name[ne]=एलेक्सा यूआरएल
+Name[nl]=Alexa URL-adres
+Name[nso]=URL ya Alexa
+Name[pa]=ਅਲੀਕਸਾ URL
+Name[pl]=Odnośnik Alexa
+Name[pt]=URL do Alexa
+Name[pt_BR]=URL do Alexa
+Name[ro]=URL Alexa
+Name[sl]=URL Alexe
+Name[ss]=I-URL ye Alexa
+Name[sv]=Alexa webbadress
+Name[ta]=அலெக்சா URL
+Name[te]=ఎలెక్సా యూ అర్ ఎల్
+Name[vi]=Địa chỉ Alexa
+Name[wa]=URL d' Alexa
+Name[zu]=I-URL ye-Alexa
+ServiceTypes=SearchProvider
+Keys=alu,url
+Query=http://info.alexa.com/data/details?url=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/alltheweb.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/alltheweb.desktop
new file mode 100644
index 000000000..fca85d4d2
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/alltheweb.desktop
@@ -0,0 +1,45 @@
+[Desktop Entry]
+Type=Service
+Name=AllTheWeb fast
+Name[af]=Allesvandieweb vinnige
+Name[az]=AllTheWeb
+Name[ca]=AllTheWeb ràpid
+Name[csb]=AllTheWeb - tekstë, filmë, teledisczi, serwerë FTP
+Name[cy]=AllTheWeb cyflym
+Name[da]=AllTheWeb hurtigt
+Name[eo]=La tuta teksaĵo rapide
+Name[es]=AllTheWeb de Fast
+Name[fa]=سرعت AllTheWeb
+Name[gl]=AllTheWeb rápido
+Name[hi]=आल-द-वेब फास्ट
+Name[hr]=AllTheWeb brzo
+Name[hu]=AllTheWeb (gyors)
+Name[is]=AllTheWeb hratt
+Name[it]=AllTheWeb veloce
+Name[km]=AllTheWeb លឿន
+Name[lo]=AlltheWebfast
+Name[ne]=सबै वेब छिटो
+Name[nn]=AllTheWeb Fast
+Name[nso]=Web Kamoka ka lebelo
+Name[pa]=ਸਭ ਵੈਬ ਤੇਜ਼
+Name[pl]=AllTheWeb - teksty, filmy, teledyski, serwery FTP
+Name[pt]=AllThe Web fast
+Name[pt_BR]=AllTheWeb
+Name[ro]=AllTheWeb rapid
+Name[rw]=Imbugamakuru Zose zihuta
+Name[sl]=AllTheWeb hitro
+Name[sv]=AllTheWeb snabb
+Name[ta]=எல்லா வலைப்பின்னலும் விரைவாக உள்ளது
+Name[th]=AllTheWeb หารวดเร็ว
+Name[tr]=AllTheWeb
+Name[tt]=AllTheWeb
+Name[uz]=Butun vebni (tez)
+Name[uz@cyrillic]=Бутун вебни (тез)
+Name[ven]=Webu dzothe ngau tavhanya
+Name[vi]=Tìm mọi trang mạng nhanh
+Name[wa]=AllTheWeb rade
+Name[xh]=Yonke i Web ngokukhawuleza
+Name[zu]=Yonke i-Web ngokushesha
+ServiceTypes=SearchProvider
+Keys=atw,alltheweb
+Query=http://www.alltheweb.com/search?exec=FAST+Search&type=all&query=\\{@}&cat=web
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/altavista.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/altavista.desktop
new file mode 100644
index 000000000..42b273d68
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/altavista.desktop
@@ -0,0 +1,23 @@
+[Desktop Entry]
+Type=Service
+Name=AltaVista
+Name[af]=Altavista
+Name[csb]=AltaVista - szëkôrz starnów WWW
+Name[eo]=Altavisto
+Name[et]=Altavista
+Name[hi]=अल्टाविस्टा
+Name[lo]=Altavista
+Name[ne]=अल्टाभिस्टा
+Name[pa]=ਅਲਟਾ ਵੀਸਟਾ
+Name[pl]=AltaVista - wyszukiwarka stron WWW
+Name[sv]=Altavista
+Name[ta]=அல்டாவிஸ்டா
+Name[te]=ఆల్టావిస్టా
+Name[th]=อัลต้าวิสต้า
+ServiceTypes=SearchProvider
+Keys=av,altavista
+Query=http://www.altavista.com/cgi-bin/query?pg=q&kl=XX&stype=stext&q=\\{@}
+Query[nb]=http://no.altavista.com/cgi-bin/query?pg=q&kl=XX&stype=stext&q=\\{@}
+Query[ne]=http://www.altavista.com/cgi-bin/query?pg=qkl=XX&stype=stext&q=\\{@}
+Query[nn]=http://no.altavista.com/cgi-bin/query?pg=q&kl=XX&stype=stext&q=\\{@}
+Query[ro]=http://www.altavista.com/cgi-bin/query?pg=q&kl=ro&stype=stext&q=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/amg.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/amg.desktop
new file mode 100644
index 000000000..908f3fee8
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/amg.desktop
@@ -0,0 +1,49 @@
+[Desktop Entry]
+Hidden=false
+Keys=amg
+Name=All Music Guide
+Name[ar]=مرشد لكل الموسيقى
+Name[az]=Geniş Musiqi Rəhbəri
+Name[bn]=অল মিউজিক গাইড
+Name[bs]=Vodič za svu muziku
+Name[ca]=Guia per a tota la música
+Name[csb]=Mùzyczny prowôdnik
+Name[cy]=Canllaw Cerdd
+Name[da]=All musik-guide
+Name[el]=Οδηγός All Music
+Name[eo]=Konciza muzik-gvidlibro
+Name[es]=Guía All Music
+Name[eu]=All Music gida
+Name[fa]=کل راهنمای موسیقی
+Name[fr]=Guide All Music
+Name[gl]=Guia de Toda a Música
+Name[he]=מדריך למוסיקה
+Name[hi]=सम्पूर्ण संगीत मार्गदर्शिका
+Name[hr]=Glazbeni vodič
+Name[is]=Tónlistarhandbók
+Name[it]=Guida All Music
+Name[km]=មគ្គុទ្ទេសក៍​តន្ត្រី​ទាំងអស់
+Name[ms]=Panduan Semua Muzik
+Name[ne]=सबै सङ्गीत मार्गदर्शक
+Name[pa]=ਸਭ ਸੰਗੀਤ ਗਾਈਡ
+Name[pl]=Przewodnik muzyczny
+Name[pt]=Guia 'Toda a Música'
+Name[pt_BR]=Guia All Music
+Name[ro]=Ghid muzical complet
+Name[rw]=Inyifashisho y'Imiziki Yose
+Name[sl]=Vodnik All Music
+Name[sr]=Свемузички водич
+Name[sr@Latn]=Svemuzički vodič
+Name[sv]=Guiden All Musik
+Name[ta]=அனைத்து இசை துணை
+Name[tg]=Ҳамаи мусиқихо
+Name[tr]=Müzik Kılavuzu
+Name[tt]=All Music
+Name[vi]=Hướng dẫn Âm nhạc
+Name[wa]=Guide All Music
+Name[zh_CN]=全音乐指南
+Name[zh_TW]=所有音樂指南
+Query=http://www.allmusic.com/cg/amg.dll?p=amg&opt1=1&sql=\\{@}
+Query[ne]=http://www.allmusic.com/cg/amg.dll?p=amgopt1=1&sql=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/appsy.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/appsy.desktop
new file mode 100644
index 000000000..13584e1f3
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/appsy.desktop
@@ -0,0 +1,84 @@
+[Desktop Entry]
+Type=Service
+Name=KDE App Search
+Name[af]=KDE App Soektog
+Name[ar]=بحث عن تطبيقات KDE
+Name[az]=KDE Proqram Axtarışı
+Name[be]=Пошук праграмаў KDE
+Name[bn]=কে.ডি.ই. অ্যাপলিকেশন অনুসন্ধান
+Name[bs]=KDE App tražilica
+Name[ca]=Recerca d'aplicacions KDE
+Name[cs]=Vyhledávání KDE aplikací
+Name[csb]=Szëkba programów KDE
+Name[cy]=KDE App Chwilio
+Name[da]=KDE Prog-søgning
+Name[de]=Programmsuche
+Name[el]=Αναζήτηση εφαρμογών του KDE
+Name[eo]=KDE app-serĉo
+Name[es]=Búsqueda de apps. de KDE
+Name[et]=KDE rakenduste otsing
+Name[eu]=KDEren aplikazio bilaketa
+Name[fa]=جستجوی کاربرد KDE
+Name[fi]=KDE-sovellusten haku
+Name[fo]=KDE Forritsleitan
+Name[fr]=Application de recherche de KDE
+Name[fy]=Programma's sykje
+Name[ga]=Cuardach Feidhmchláir KDE
+Name[gl]=Procura de Aplicacións de KDE
+Name[he]=חיפוש יישומי KDE
+Name[hi]=केडीई एप खोज
+Name[hr]=KDE pretraživanje aplikacija
+Name[hu]=KDE alkalmazások keresése
+Name[it]=Ricerca applicazioni di KDE
+Name[ja]=KDE アプリケーション検索
+Name[ka]=KDE–ს პროგრამების ძებნა
+Name[kk]=KDE қолданбаларын табу
+Name[km]=ស្វែងរក​កម្មវិធី KDE
+Name[ko]=KDE 프로그램 검색
+Name[lo]=ຝຣັ່ງເສດ
+Name[lt]=KDE programų paieška
+Name[lv]=KDE programmu meklēšana
+Name[mk]=Пребарување за KDE-апликации
+Name[mn]=Програм хайх
+Name[ms]=Carian Aplikasi KDE
+Name[mt]=Fittex Programmi KDE
+Name[nb]=KDE programsøk
+Name[nds]=KDE Programmsöök
+Name[ne]=KDE App खोजी
+Name[nl]=Programma's zoeken
+Name[nn]=KDE Programsøk
+Name[nso]=Nyako ya App ya KDE
+Name[pa]=KDE ਕਾਰਜ ਖੋਜ
+Name[pl]=Wyszukiwanie programów KDE
+Name[pt]=Pesquisa de Aplicações do KDE
+Name[pt_BR]=Busca por aplicativos do KDE
+Name[ro]=Căutare aplicații KDE
+Name[ru]=Поиск приложений
+Name[rw]=Ishakisha rya KDE App
+Name[se]=KDE prográmmaohci
+Name[sk]=Hľadanie aplikácií KDE
+Name[sl]=Iskanje programov za KDE
+Name[sr]=Претраживање KDE програма
+Name[sr@Latn]=Pretraživanje KDE programa
+Name[ss]=Kusesha kwe App ku KDE
+Name[sv]=KDE-programsökning
+Name[ta]=KDE App தேடுதல்
+Name[te]=కెడిఈ కార్యక్రమాల అన్వెషణ
+Name[tg]=Ҷустуҷӯи барномаи KDE
+Name[th]=ค้นหาแอพพลิเคชั่น KDE
+Name[tr]=KDE Uygulama Arayıcı
+Name[tt]=KDE App Ezläw
+Name[uk]=Пошук програм KDE
+Name[uz]=KDE dasturlarida qidirish
+Name[uz@cyrillic]=KDE дастурларида қидириш
+Name[ven]=U setsha ha apulifikhesheni ya KDE
+Name[vi]=Tìm Ứng dụng KDE
+Name[wa]=Programe di cweraedje di KDE
+Name[xh]=Uphendlo lwe KDE App
+Name[zh_CN]=KDE 应用程序搜索
+Name[zh_TW]=KDE 程式搜尋
+Name[zu]=Usesho lwe-App lwe-KDE
+ServiceTypes=SearchProvider
+Keys=apps,appsy
+Query=http://www.kde-apps.org/content/search.php?search=Search&name=\\{@}
+Query[ne]=http://www.kde-apps.org/content/search.php?search=Searchname=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/austronaut.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/austronaut.desktop
new file mode 100644
index 000000000..9dddb3a59
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/austronaut.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Type=Service
+Name=AustroNaut
+Name[af]=Ruimtevaarder
+Name[bn]=অস্ট্রো-নট
+Name[eo]=Aŭstronaŭto
+Name[hi]=आस्ट्रोनॉट
+Name[ne]=एस्ट्रोनट
+Name[pa]=ਅਸਟਰੋਨਾਊਟ
+Name[sv]=Astronaut
+Name[ta]=ஆஸ்ட்ரோநட்
+Name[te]=ఆస్ట్రొనాట్
+Name[zu]=Umuntu wasemkhathini
+ServiceTypes=SearchProvider
+Keys=austro,austronaut
+Query=http://austronaut.at/page.php?begriff=\{@}&wo=at
+Query[ko]=http://austronaut.at/page.php?begriff=\\{@}&wo=at
+Query[ne]=http://austronaut.at/page.php?begriff=\{@}wo=at
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/backports.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/backports.desktop
new file mode 100644
index 000000000..ac9c933fb
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/backports.desktop
@@ -0,0 +1,66 @@
+[Desktop Entry]
+Keys=backports
+Name=Debian Backports Search
+Name[af]=Debian Backports Soektog
+Name[az]=Debian Backports Axtarışı
+Name[be]=Пошук Debian Backports
+Name[bn]=ডেবিয়ান ব্যাকপোর্ট অনুসন্ধান
+Name[ca]=Cerca de reratransports Debian
+Name[cs]=Vyhledávání v Debian Backports
+Name[csb]=Szëkba starszëch paczétów Debiana
+Name[da]=Debian Backports søgning
+Name[de]=Suche für Debian Backports
+Name[el]=Αναζήτηση νέων Πακέτων Debian για σταθερή έκδοση
+Name[eo]=Retradukaĵa serĉo de Debiano
+Name[es]=Búsqueda de backports de Debian
+Name[et]=Debiani backport'ide otsing
+Name[eu]=Debian Backports bilaketa
+Name[fa]=جستجوی پس‌درگاههای دبیان
+Name[fi]=Debianin takaisinsovittamishaku
+Name[fr]=Recherche dans le système de rétroportage de Debian
+Name[gl]=Procura de Backports de Debian
+Name[he]=חיפוש של backports עבור דביאן
+Name[hi]=डेबियन बैकपोर्ट्स खोज
+Name[hr]=Debian pretraživanje povratnih portova
+Name[hu]=Debian Backports-keresés
+Name[is]=Debian Backports leit
+Name[it]=Ricerca Debian backports
+Name[ja]=Debian バックポート検索
+Name[kk]=Debian порттарын табу
+Name[km]=ស្វែងរក Debian Backports
+Name[ko]=데비안 백포트 검색
+Name[lt]=Debian Backports paieška
+Name[mk]=Пребарување во Debian Backports
+Name[ms]=Carian Port Belakang Debian
+Name[mt]=Tfittxija tal-Backports tad-Debian
+Name[nb]=Søk etter tilbakeporta Debian-pakker
+Name[nds]=Söök na Debian-Backports
+Name[ne]=डेबियन ब्याकस्पोर्टस खोजी
+Name[nn]=Søk etter tilbakeporta Debian-pakkar
+Name[pa]=ਡੇਬੀਅਨ ਬੈਕਪੋਰਟ ਖੋਜ
+Name[pl]=Wyszukiwanie starszych pakietów Debiana
+Name[pt]=Procura de Transposições para Versões Anteriores da Debian
+Name[pt_BR]=Busca de Backports Debian
+Name[ro]=Căutare în sistemul Debian Backports
+Name[ru]=Поиск портов Debian
+Name[rw]=Ishakisha ImiyoboroInyuma Debiyani
+Name[se]=Oza maŋosportejuvvon Debian-páhkaid
+Name[sk]=Hľadanie v Debian Backports
+Name[sl]=Iskanje po prenosih v Debian
+Name[sr]=Debian-ова Backports претрага
+Name[sr@Latn]=Debian-ova Backports pretraga
+Name[sv]=Sökning i Debians uppdateringar
+Name[ta]=டெபியன் பின்முனையங்கள் தேடல்
+Name[te]=డెబియన్ బేక్ పొర్ట్ల అన్వెషణ
+Name[tg]=Ҷустуҷӯи Debian Backports
+Name[th]=ค้นหา Debian Backports
+Name[tr]=Debian Arkakapı Arama
+Name[tt]=Debian Portların Ezläw
+Name[uk]=Пошук серед додаткових пакетів Debian
+Name[vi]=Tìm kiếm trên Cổng sau Debian
+Name[wa]=Cweraedje Backports Debian
+Name[zh_CN]=Debian 后端搜索
+Name[zh_TW]=Debian Backports 搜尋
+Query=http://www.backports.org/package.php?search=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/bugft.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/bugft.desktop
new file mode 100644
index 000000000..1984716d1
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/bugft.desktop
@@ -0,0 +1,81 @@
+[Desktop Entry]
+Keys=bugft
+Name=KDE Bug Database Fulltext Search
+Name[af]=KDE Fout Databasis voltext Soektog
+Name[ar]=بحث عن نص كلي في قاعدة بيانات عيوب كيدي
+Name[az]=KDE Xəta Databeyzi Tam Sözcük Axtarışı
+Name[be]=Паўнатэкставы пошук па базе памылак KDE
+Name[bn]=কে.ডি.ই. বাগ ডেটাবেস-এ পূর্ণ টেক্সট অনুসন্ধান
+Name[bs]=Tekstualna pretraga KDE baze bugova
+Name[ca]=Cercador de text per la base de dades d'errors de KDE
+Name[cs]=Plnotextové vyhledávání v databázi chyb KDE
+Name[csb]=Baza felów KDE - szëkba w òpisach felów
+Name[cy]=Chwilio Llawn-destun y Gronfa Gwallau KDE
+Name[da]=Fuldtekst-søgning i KDE's fejldatabase
+Name[de]=KDE-Problemdatenbank: Volltextsuche
+Name[el]=Αναζήτηση πλήρους κειμένου στη βάση δεδομένων σφαλμάτων του KDE
+Name[eo]=Plenteksta serĉo en la KDEa Erarodatumbazo
+Name[es]=Búsqueda textual en la base de datos de fallos de KDE
+Name[et]=Täisteksti otsing KDE vigade andmebaasist
+Name[eu]=KDEren akatsen datu-baseko testu erako bilaketa
+Name[fa]=جستجوی متن کامل دادگان اشکال KDE
+Name[fi]=KDE-vikailmoitustietokannan tekstihaku
+Name[fo]=Leita í villudátugrunnur KDE's
+Name[fr]=Recherche de bogue de KDE par texte
+Name[fy]=KDE Bug Databank - folsleine-tekst-sykaksje
+Name[gl]=Procura de Texto Completo na Base de Datos de Erros de KDE
+Name[he]=חיפוש של טקסט מלא ברשימת באגים של KDE
+Name[hi]=केडीई बग डाटाबेस संपूर्ण-पाठ खोज
+Name[hr]=Pretraga KDE baze podataka o nedostacima pomoću potpunog teksta
+Name[hu]=A KDE hibaadatbázis teljes szöveges keresési eszköze
+Name[is]=Leit eftir orðum í KDE villugagnagrunni
+Name[it]=Ricerca testo completo nel Database dei bug di KDE
+Name[ja]=KDE バグデータベース全文検索
+Name[ka]=KDE–ს შეცდომების ძებნა სრული ტექსტით
+Name[kk]=KDE қателер дерек қорында толық мәтінді іздеу
+Name[km]=ស្វែងរក​ជា​អត្ថបទ​ពេញលេញ​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​កំហុស KDE
+Name[ko]=KDE 버그 데이터베이스 전체 텍스트 검색
+Name[lo]=ຄົ້ນຫາຖານຂໍ້ມູນບັກ KDE ແບບຂໍ້ຄວາມ
+Name[lv]=KDE Kļūdu Datubāzes pilnteksta meklēšana
+Name[mk]=База на податоци со бубачки од KDE, пребарување по цел текст
+Name[mn]=КДЭ-Асуудлын бааз: Бүтэн текст хайх
+Name[ms]=Carian Teks Penuh Pangkalan Data Pepijat
+Name[mt]=Database ta' bugs tal-KDE - tfittxija bil-kliem
+Name[nb]=Fulltekstsøk i feildatabasen til KDE
+Name[nds]=KDE Fehler-Datenbank: Vulltext-Söök
+Name[ne]=KDE बग डेटाबेस फुलटेक्स्ट खोजी
+Name[nl]=KDE Bug Database - volledige-tekst-zoekactie
+Name[nn]=Fulltekstsøk i feildatabasen til KDE
+Name[nso]=Nyako ya Sengwalwana seo se Tletsego sa Database ya Bug ya KDE
+Name[pa]=KDE ਬੱਗ ਡਾਟਾਬੇਸ ਪੂਰਾ-ਪਾਠ ਖੋਜ
+Name[pl]=Baza błędów KDE - wyszukiwanie w opisach błędów
+Name[pt]=Pesquisa por Nome Completo na Base de Dados de Erros do KDE
+Name[pt_BR]=Procura por texto no banco de erros do KDE
+Name[ro]=Baza de date de erori KDE - căutare integrală de text
+Name[ru]=Полнотекстовый поиск ошибок в базе KDE
+Name[rw]=Ishakisha Mwandikowuzuye ry'Ububikoshingiro bw'Ikosaporogaramu KDE
+Name[se]=KDE dihkkediehtovuođu ollesteakstaohcan
+Name[sk]=Hľadanie fulltext v KDE databáze chýb
+Name[sl]=Iskanje besedila po zbirki hroščev v KDE
+Name[sr]=KDE база грешака са подршком за пуну претрагу текста
+Name[sr@Latn]=KDE baza grešaka sa podrškom za punu pretragu teksta
+Name[sv]=Textsökning i KDE:s feldatabas
+Name[ta]=KDE பிழை தகவல்தள முழு உரை தேடுதல்
+Name[te]=కెడిఈ తప్పుల డాటాబేస్ పూర్తి వచన అన్వెషణ
+Name[tg]=Ҷустуҷӯи тамоми матни бонки иттилооти ишколоти KDE
+Name[th]=ค้นหาฐานข้อมูลบัก KDE แบบครบถ้วน
+Name[tr]=KDE Hata Veritabanı Tam Sözcük Arama
+Name[tt]=KDE Bet Biremlegendä Mäten buyınça Ezläw
+Name[uk]=Повнотекстовий пошук у базі даних KDE
+Name[uz]=KDE xato maʼlumot bazasi (butun matnni qidirish)
+Name[uz@cyrillic]=KDE хато маълумот базаси (бутун матнни қидириш)
+Name[ven]=Databeizi ya KDE baga ya manwalwafhelela a u todulusa
+Name[vi]=Tìm kiếm cơ sở dữ liệu lỗi của KDE, dùng toàn bộ dòng từ khoá đã nhập
+Name[wa]=Cweraedje di tecse el båze di dnêyes des bugs di KDE
+Name[xh]=Uphendlo lwesiseko sedata ye KDE Bug Olubhaliweyo ngokupheleleyo
+Name[zh_CN]=KDE 错误数据库全文检索
+Name[zh_TW]=KDE 臭蟲資料庫全文檢索
+Name[zu]=Usesho lwe-KDE lombhalo ogcwele lwesiqu sedata sedata
+Query=http://bugs.kde.org/simple_search.cgi?id=\\{1}+\\{2}+\\{3}+\\{4}+\\{5}+\\{6}+\\{7}+\\{8}+\\{9}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/bugno.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/bugno.desktop
new file mode 100644
index 000000000..4e495a4a5
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/bugno.desktop
@@ -0,0 +1,82 @@
+[Desktop Entry]
+Keys=bug,bugno,bugnr
+Name=KDE Bug Database Bug Number Search
+Name[af]=Kde Fout Databasis Fout Nommer Soektog
+Name[ar]=بحث عن رقم عيب في قاعدة بيانات عيوب كيدي
+Name[az]=KDE Xəta Databeyzi Xəta Numarasıyla Axtarış
+Name[be]=Пошук па нумару памылкі ў базе памылак KDE
+Name[bn]=কে.ডি.ই. বাগ ডেটাবেস-এ বাগ সংখ্যা অনুসন্ধান
+Name[bs]=Numerička pretraga KDE baze bugova
+Name[ca]=Cercador per número per la base de dades d'errors de KDE
+Name[cs]=Vyhledávání v databázi chyb KDE podle čísla chyby
+Name[csb]=Baza felów KDE - szëkba pò numrze felë
+Name[cy]=Chwilio Rhif Gwall y Gronfa Gwallau KDE
+Name[da]=Nummersøgning i KDE's fejldatabase
+Name[de]=KDE-Problemdatenbank: Suche nach Nummer
+Name[el]=Αναζήτηση αριθμού σφάλματος στη βάση δεδομένων σφαλμάτων του KDE
+Name[eo]=Serĉo laŭ numero en la KDEa Erarodatumbazo
+Name[es]=Búsqueda de número de fallo en la base de datos de fallos de KDE
+Name[et]=Veanumbri otsing KDE vigade andmebaasist
+Name[eu]=Akats zenbakiaren bidezko bilaketa KDEren akats datu-basean
+Name[fa]=جستجوی شمارۀ اشکال دادگان اشکال KDE
+Name[fi]=KDE-vikailmoitustietokannan numerohaku
+Name[fo]=Leita í villudátugrunnur KDE's (nýt villunummar)
+Name[fr]=Recherche de bogue de KDE par numéro
+Name[fy]=KDE Bug Databank - sykje op breknûmer
+Name[gl]=Procura Numérica na Base de Datos de Erros de KDE
+Name[he]=חיפוש מספר באג ברשימת הבאגים של KDE
+Name[hi]=केडीई बग डाटाबेस बग संख्या खोज
+Name[hr]=Pretraga KDE baze podataka o nedostacima pomoću broja nedostatka
+Name[hu]=A KDE hibaadatbázis hibaszám-keresési eszköze
+Name[is]=Leit eftir númerum í KDE villugagnagrunni
+Name[it]=Ricerca per numero nel Database dei bug di KDE
+Name[ja]=KDE バグデータベース バグ番号検索
+Name[ka]=KDE–ს შეცდომების ძებნა ნომრების მიხედვით
+Name[kk]=KDE қателер дерек қорында қате нөмірі бойынша іздеу
+Name[km]=ស្វែងរក​លេខ​កំហុស​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​កំហុស KDE
+Name[ko]=KDE 버그 데이터베이스 버그 번호 검색
+Name[lo]=ຄົ້ນຫາຖານຂໍ້ມູນບັກ KDE ແບບຫມາຍເລກ
+Name[lt]=Paieška KDE ydų duombazėje pagal klaidos numerį
+Name[lv]=KDE Kļūdu Datubāze Meklēšana pēc Kļūdas Numura
+Name[mk]=База на податоци со бубачки од KDE, пребарување по броеви
+Name[mn]=КДЭ-Асуудлын бааз: Дугаараар хайх
+Name[ms]=Carian Bilangan Pepijat Pangkalan Data Pepijat KDE
+Name[mt]=Database ta' BUGS tal-KDE - tfittxija bin-numru tal-bug
+Name[nb]=Feilnummersøk i feildatabasen til KDE
+Name[nds]=KDE Fehler-Datenbank: Fehlernummer-Söök
+Name[ne]=KDE बग डेटाबेस बग सङ्ख्या खोजी
+Name[nl]=KDE Bug Database - zoeken op bugnummer
+Name[nn]=Feilnummersøk i feildatabasen til KDE
+Name[nso]=Nyako ya Nomoro ya Bug ya Database ya Bug ya KDE
+Name[pa]=KDE ਬੱਗ ਡਾਟਾਬੇਸ ਬੱਗ ਨੰਬਰ ਖੋਜ
+Name[pl]=Baza błędów KDE - wyszukiwanie po numerze błędu
+Name[pt]=Pesquisa por Número na Base de Dados de Erros do KDE
+Name[pt_BR]=Procura por número no banco de erros do KDE
+Name[ro]=Baza de date de erori KDE- căutare după număr
+Name[ru]=Поиск по номеру в базе ошибок KDE
+Name[rw]=Ishakisha Umubare w'ikosaporogaramu ry'Ububikoshingiro bw'Ikosaporogaramu KDE
+Name[se]=KDE dihkkediehtovuođu dihkkenummir ohcan
+Name[sk]=Hľadanie podľa čísla chyby v KDE databáze chýb
+Name[sl]=Iskanje v zbirki hroščev KDE po številki hrošča
+Name[sr]=KDE-ова база грешака, претраживање по броју грешке
+Name[sr@Latn]=KDE-ova baza grešaka, pretraživanje po broju greške
+Name[sv]=Felnummersökning i KDE:s feldatabas
+Name[ta]=கேடிஇ பிழையான தகவல்தள பிழையான எண் தேடுதல்
+Name[te]=కెడిఈ తప్పుల డాటాబేస్ తప్పు సంఖ్య అన్వెషణ
+Name[tg]=Бар ҳисби KDE ҷустуҷӯи бонки иттилооти ишколоти шумора
+Name[th]=ค้นหาฐานข้อมูลบัก KDE แบบหมายเลข
+Name[tr]=KDE Hata Veritabanı Hata Numarasıyla Arama
+Name[tt]=KDE Bet Biremlegendä Bicra Sanı buyınça Ezläw
+Name[uk]=Пошук у базі даних помилок KDE по номеру
+Name[uz]=KDE xato maʼlumot bazasi (xatoning raqamini qidirish)
+Name[uz@cyrillic]=KDE хато маълумот базаси (хатонинг рақамини қидириш)
+Name[ven]=Databeizi ya baga ya KDE baga yau todulusa nomboro
+Name[vi]=Tìm kiếm số thứ tự của lỗi trong cơ sở dữ liệu lỗi của KDE
+Name[wa]=Cweraedje di nombe el båze di dnêyes des bugs di KDE
+Name[xh]=KDE Uphendlo Lwenani Legciwane Isiseko se data Segciwane
+Name[zh_CN]=KDE 错误数据库按错误编号搜索
+Name[zh_TW]=KDE 臭蟲資料庫按錯誤編號搜索
+Name[zu]=Usesho lwe-KDE lwenombolo yegciwane lwesiqu sedata segciwane
+Query=http://bugs.kde.org/show_bug.cgi?id=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/call.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/call.desktop
new file mode 100644
index 000000000..527bf39f1
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/call.desktop
@@ -0,0 +1,70 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=qrz,call
+Name=QRZ.com Callsign Database
+Name[af]=QRZ.com Callsign databasis
+Name[az]=QRZ.com Callsign Databeyzi
+Name[be]=База дадзеных QRZ.com Callsign
+Name[bn]=QRZ.com কল-সাইন ডেটাবেস
+Name[bs]=QRZ.com baza pozivnih brojeva
+Name[ca]=Base de dades d'indicatius de QRZ.com
+Name[cs]=Databáze volacích znaků QRZ.com
+Name[csb]=QRZ.com - baza radiowëch wëwòłaniów
+Name[cy]=Cronfa Ddata Arwydd-galwad QRZ.com
+Name[da]=QRZ.com callsign-database
+Name[de]=QRZ.com Callsign-Datenbank
+Name[el]=QRZ.com βάση δεδομένων τηλεπικοινωνίας
+Name[eo]=Voksigno-datumbazo ĉe QRZ.com
+Name[es]=Base de datos callsign QRZ.com
+Name[et]=QRZ.com callsign andmebaas
+Name[eu]=QRZ.com callsign datu-basea
+Name[fa]=دادگان QRZ.com Callsign
+Name[fi]=QRZ.com-kutsumerkkitietokanta
+Name[fr]=Base de données QRZ.com callsign
+Name[fy]=QRZ.com callsign database
+Name[gl]=Base de Datos Callsign QRZ.com
+Name[hi]=QRZ.com काल-साइन डाटाबेस
+Name[hr]=QRZ.com baza podataka pozivnih znakova
+Name[hu]=QRZ.com hívójel-adatbázis
+Name[is]=QRZ.com kallmerkjagrunnur
+Name[it]=Database dei segnali di chiamata QRZ.com
+Name[ja]=QRZ.com Callsign データベース
+Name[kk]=QRZ.com шақыру атаулар дерек қоры
+Name[km]=មូលដ្ឋាន​ទិន្នន័យ QRZ.com Callsign
+Name[ko]=QRZ.com 호출 부호 데이터베이스
+Name[lt]=QRZ.com callsign duomenų bazė
+Name[lv]=QRZ.com izsaukuma signālu datubāze
+Name[mk]=База на податоци QRZ.com callsign
+Name[mt]=Database ta' "callsigns" QRZ.com
+Name[nb]=QRZ.com database for kallesignal
+Name[nds]=QRZ.com Callsign-Datenbank
+Name[ne]=QRZ.com कलसाइन डेटाबेस
+Name[nl]=QRZ.com callsign database
+Name[nn]=QRZ.com database for kallesignal
+Name[pa]=QRZ.com Callsign ਡਾਟਾਬੇਸ
+Name[pl]=QRZ.com - baza wywołań radiowych
+Name[pt]=Base de Dados de Chamada do QRZ.com
+Name[pt_BR]=Banco QRZ.com
+Name[ro]=Baza de date de indicative QRZ.com
+Name[ru]=База позывных QRZ.com
+Name[rw]=Ububikoshingiro Ihamagarayingira QRZ.com
+Name[se]=QRZ.com gohččonsignálaid diehtovuođđu
+Name[sk]=Databáza skratiek QRZ.com
+Name[sl]=Zbirka okrajšav QRZ.com
+Name[sr]=QRZ.com callsign база података
+Name[sr@Latn]=QRZ.com callsign baza podataka
+Name[sv]=Databas för QRZ.com-anropssignaler
+Name[ta]=QRZ.com அழைப்புநுழை தகவல்தளம்
+Name[tg]=Базаи иттилооти QRZ.com callsign
+Name[th]=ฐานข้อมูล QRZ.com Callsign
+Name[tr]=QRZ.com Aramaişaret Veritabanı
+Name[tt]=QRZ.com Imlaw-Biremlege
+Name[uk]=База даних callsign QRZ.com
+Name[vi]=Cơ sở dữ liệu callsign QRZ.com
+Name[wa]=Båze di dnêyes callsign QRZ.com
+Name[zh_CN]=QRZ.com Callsign 数据库
+Name[zh_TW]=QRZ.com Callsign 資料庫
+Query=http://www.qrz.com/database?callsign=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/cia.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/cia.desktop
new file mode 100644
index 000000000..1bd7725f2
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/cia.desktop
@@ -0,0 +1,45 @@
+[Desktop Entry]
+Hidden=false
+Keys=cia
+Name=CIA World Factbook
+Name[af]=CIA Wêreld Feiteboek
+Name[bn]=সি-আই-এ ওয়ার্ল্ড ফ্যাক্টবুক
+Name[cs]=Světová kniha faktů CIA
+Name[csb]=Swiatowé wëdarzenia CIA (CIA World Factbook)
+Name[da]=CIA Bog over verdens fakta
+Name[el]=Παγκόσμιο βιβλίο γεγονότων της CIA
+Name[eo]=CIA Monda faktlibro
+Name[es]=Libro del estado del mundo de la CIA
+Name[eu]=CIA World Fact Book
+Name[fy]=CIA Wrâld Feitboek
+Name[hr]=CIA činjenice iz svijeta
+Name[id]=Buku Fakta Dunia CIA
+Name[it]=World Fact Book della CIA
+Name[ka]=CIA მსოფლიო ფაქტები
+Name[km]=សៀវភៅ​ការ​ពិត​នៃ​ពិភពលោក​របស់ CIA
+Name[ko]=CIA 월드 팩트 북
+Name[lt]=CŽV pasaulio faktų knyga
+Name[ms]=Buku Fakta Dunia CIA
+Name[ne]=CIA वर्ल्ड फ्याक्टबुक
+Name[pa]=CIA ਸੰਸਾਰ ਜਾਣਕਾਰੀ ਕਿਤਾਬ
+Name[pl]=Światowe wydarzenia CIA (CIA World Factbook)
+Name[pt_BR]=CIA World Fact Book
+Name[ro]=CIA World Fact Book
+Name[ru]=Всемирная книга фактов (ЦРУ)
+Name[se]=CIA:a máilbmediehtogirji
+Name[sk]=CIA svetová kniha faktov
+Name[sr]=Књига светских чињеница CIA-е
+Name[sr@Latn]=Knjiga svetskih činjenica CIA-e
+Name[sv]=CIA-världsfaktabok
+Name[tg]=CIA Ҷаҳонӣ китоби аслан
+Name[tr]=CIA Dünya Gerçekleri Kitabı
+Name[uk]=Світова книга фактів ЦРУ
+Name[vi]=Sách sự thật Thế giới CIA
+Query=http://www.google.com/search?q=allintitle%3A\\{@}+world+factbook+site%3Awww.cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky
+Query[fi]=http://www.google.fi/search?q=allintitle%3A\\{@}+world+factbook+site%3Awww.cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky
+Query[he]=http://www.google.co.il/search?q=allintitle%3A\\{@}+world+factbook+site%3Awww.cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky
+Query[ja]=http://www.google.com/search?q=allintitle%3A\\{@}+world+fact+book+site%3Awww.cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky
+Query[nds]=http://www.google.com/search?q=allintitle%3A\\{@}+world+fact+book+site%3Awww.cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky
+Query[th]=http://www.google.com/search?q=allintitle%3A\\{@}+world+fact+book+site%3Awww.cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/citeseer.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/citeseer.desktop
new file mode 100644
index 000000000..c92d86d0b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/citeseer.desktop
@@ -0,0 +1,72 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=cite,cs
+Name=CiteSeer: Scientific Literature Digital Library
+Name[af]=CiteSeer: Wetenskaplike Digitale Literatuur Biblioteek
+Name[az]=CiteSeer: Elmi Ədəbiyyat Dijital Kitabxanası
+Name[be]=CiteSeer: Лічбавая бібліятэка навуковай літаратуры
+Name[bn]=CiteSeer: বিজ্ঞানসাহিত্যের ডিজিটাল লাইব্রেরী
+Name[bs]=CiteSeer: digitalna biblioteka naučne literature
+Name[ca]=CiteSeer: Biblioteca digital de literatura científica
+Name[cs]=CiteSeer: Vědecká digitální knihovna
+Name[csb]=CiteSeer - Nôùkòwô elektronicznô bibloteka
+Name[cy]=CiteSeer: Llyfgell Digidol Llenyddiaeth Gwyddonol
+Name[da]=CiteSeer: Digitalt bibliotek for digital litteratur
+Name[de]=CiteSeer: Digitale Bibliothek für wissenschaftliche Literatur
+Name[el]=CiteSeer: Ψηφιακή βιβλιοθήκη επιστημονικής βιβλιογραφίας
+Name[eo]=CiteSeer: Sciencoliteratura biblioteko cifereca
+Name[es]=CiteSeer: Biblioteca digital de literatura científica
+Name[et]=CiteSeer: Teaduskirjanduse digitaalraamatukogu
+Name[eu]=CiteSeer: Zientzia-literatur liburutegi digitala
+Name[fa]=CiteSeer: کتابخانۀ رقمی ادبیات علمی
+Name[fi]=CiteSeer: Tieteellisten tekstien digitaalinen kirjasto
+Name[fr]=CiteSeer : Bibliothèque numérique de littérature scientifique
+Name[ga]=CiteSeer: Leabharlann Dhigiteach den Litríocht Eolaíochta
+Name[gl]=CiteSeer: Libraria Dixital de Literatura Científica
+Name[he]=CiteSeer: ספרית ספרות דיגיטלית מדעית
+Name[hi]=CiteSeer: वैज्ञानिक साहित्य डिजिटल पुस्तकालय
+Name[hr]=CiteSeer: Digitalna knjižnica znanstvene literature
+Name[hu]=CiteSeer: tudományos szakirodalom digitális könyvtára
+Name[it]=CiteSeer: Biblioteca digitale di letteratura scientifica
+Name[ja]=CiteSeer: 学術電子論文ブラウザ
+Name[kk]=CiteSeer: ғылыми әдебиет цифрлық кітапханасы
+Name[km]=CiteSeer ៖ បណ្ណាល័យ​ឌីជីថល​អក្សរសាស្ត្រ​វិទ្យាសាស្ត្រ
+Name[ko]=CiteSeer: 과학적 문학 디지털 도서관
+Name[lt]=CiteSeer: Mokslinės literatūros skaitmeninė biblioteka
+Name[lv]=CiteSeer: Zinātniskās literatūras elektroniskā bibliotēka
+Name[mk]=CiteSeer: дигитална библиотека со научна литература
+Name[mn]=CiteSeer: Шинжлэх ухаан уран зохиолын дижитал сан
+Name[ms]=CiteSeer: Pustaka Digital Risalah Sains
+Name[nb]=CiteSeer: Digitalt bibliotek for vitenskaplig litteratur
+Name[nds]=CiteSeer: Digitale Bibliotheek för wetenschaplich Literatuur
+Name[ne]=CiteSeer: वैज्ञानिक साहित्य डिजिटल लाइब्रेरी
+Name[nn]=CiteSeer: Digitalt bibliotek for vitskapleg litteratur
+Name[pa]=CiteSeer: ਵਿਗਿਆਨਕ ਸਾਹਿਤ ਡਿਜ਼ੀਟਲ ਲਾਇਬਰੇਰੀ
+Name[pl]=CiteSeer - elektroniczna biblioteka naukowa
+Name[pt]=CiteSeer: Biblioteca Digital de Literatura Científica
+Name[pt_BR]=CiteSeer: Biblioteca Digital de Literatura Científica
+Name[ro]=CiteSeer: Biblioteca digitală de literatură științifică
+Name[ru]=CiteSeer: цифровая библиотека научной литературы
+Name[rw]=UmuhanuziKuvuga: Isomero Bimenyetsomibare ry'Ubuvanganzo Buhanga
+Name[se]=CiteSeer:Digitálalaš bibliotehka mas lea dieđálaš litteratuvra
+Name[sk]=CiteSeer: Digitálna knižnica vedeckej literatúry
+Name[sl]=CiteSeer: Digitalna knjižnica znanstvene literature
+Name[sr]=CiteSeer: Дигитална библиотека научне литературе
+Name[sr@Latn]=CiteSeer: Digitalna biblioteka naučne literature
+Name[sv]=CiteSeer: Digitalt bibliotek med vetenskaplig litteratur
+Name[ta]=சைட்சீர்: அறிவியல் சம்மந்தமான கல்வி டிஜிட்டல் நூலகம்
+Name[tg]= CiteSeer: Китобхонаи digital-и адабиёти умумӣ
+Name[th]=CiteSeer: ห้องสมุดดิจิตอลของข้อเขียนทางวิทยาศาสตร์
+Name[tr]=CiteSeer: Bilimsel Literatür Kütüphanesi
+Name[tt]=CiteSeer: Fänni Eşlär buyınça Online-Kitapxänä
+Name[uk]=CiteSeer: цифрова бібліотека наукової літератури
+Name[uz]=CiteSeer: Aniq fanlar uchun elektron kutubxona
+Name[uz@cyrillic]=CiteSeer: Аниқ фанлар учун электрон кутубхона
+Name[vi]=CiteSeer:Thư viện khoa học & văn học số hoá
+Name[wa]=CiteSeer: Didjitåle livreye di literateure siyintifike
+Name[zh_TW]=CiteSeer: 科學文獻數位圖書館
+Query=http://citeseer.ist.psu.edu/cs?q=\\{@}&submit=Search+Documents&cs=1
+Query[ne]=http://citeseer.ist.psu.edu/cs?q=\\{@}submit=Search+Documents&cs=1
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/cpan.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/cpan.desktop
new file mode 100644
index 000000000..fe2503e13
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/cpan.desktop
@@ -0,0 +1,53 @@
+[Desktop Entry]
+Keys=cpan
+Name=CPAN - Comprehensive Perl Archive Network
+Name[af]=CPAN - Omvattende Perl Argief Netwerk
+Name[bn]=CPAN - কমপ্রিহেনসিভ পার্ল আর্কাইভ নেটওয়ার্ক
+Name[bs]=CPAN - Mreža sveobuhvatne Perl arhive
+Name[ca]=CPAN - Xarxa comprensible de l'arxiu Perl
+Name[csb]=CPAN - archiwa skriptów Perl
+Name[cy]=CPAN - Rhwydwaith Archif Cynhwysfawr Perl
+Name[da]=CPAN - omfattende Perl-arkivnetværk
+Name[de]=CPAN - Umfassendes Perl-Archiv
+Name[el]=CPAN - Περιεκτικό δίκτυο αρχειοθήκης perl
+Name[eo]=CPAN - Ampleksa Perl-arĥiv-reto
+Name[es]=CPAN - Red de archivos Perl comprensibles
+Name[eu]=CPAN - Perl fitxategi sare ulergarria
+Name[fa]=CPAN - شبکۀ‌ وسیع بایگانی پرل
+Name[fr]=CPAN (Comprehensive Perl Archive Network)
+Name[gl]=CPAN - Colección de Materiais Acerca de Perl
+Name[hi]=CPAN - कॉम्प्रेहेंसिव पर्ल आर्काइव नेटवर्क
+Name[hr]=CPAN - Perl mreža sveobuhvatne arhive
+Name[kk]=CPAN - Perl скрипттер архив желісі
+Name[lo]=CPAN-Comprehensive perlArchive Network
+Name[lt]=CPAN – Visapusiško Perlo Archyvo Tinklas
+Name[lv]=CPAN - Visaptverošs Perl arhīvu tīkls
+Name[mk]=CPAN - Обемна мрежа со Perl архиви
+Name[mn]=CPAN - Өргөн хүрээтэй Perl-Архив
+Name[mt]=CPAN - Databażi komprensiv ta' arkivji Perl
+Name[nb]=CPAN -– Perl-arkiv: «Comprehensive Perl Archive Network»
+Name[ne]=CPAN - व्यापक पर्ल सङ्ग्रह सञ्जाल
+Name[nn]=CPAN – Perl-arkiv: «Comprehensive Perl Archive Network»
+Name[nso]=Kgokagano ya Polokelo ya Perl ya Kelelo ya Godimo
+Name[pa]=CPAN - ਪੈਰਾ ਪਰਲ ਆਰਚੀਵ ਨੈੱਟਵਰਕ
+Name[pl]=CPAN - archiwum skryptów Perl
+Name[pt_BR]=CPAN
+Name[ro]=CPAN - Arhiva completă de programe Perl
+Name[ru]=CPAN - архив скриптов Perl
+Name[rw]=CPAN - Urusobemiyoboro rw'Ubushyinguro Perl Rwuzuye
+Name[se]=CPAN – Perl-vuorká: «Comprehensive Perl Archive Network»
+Name[sl]=CPAN - Omrežje obsežnega arhiva za Perl
+Name[ta]=CPAN -பரந்த பர்ல் ஆவண வலைப்பின்னல்
+Name[tg]=CPAN -Шабакаи ҳаматарафаи архиви Perl
+Name[tr]=CPAN - Detaylı Perl Arşiv Ağı
+Name[tt]=CPAN - Perl Tuplamalar Çeltäre
+Name[uk]=CPAN - Всеосяжна мережа архівів Perl
+Name[uz]=CPAN - Perl boʻyicha mukammal arxiv tarmogʻi
+Name[uz@cyrillic]=CPAN - Perl бўйича мукаммал архив тармоғи
+Name[ven]=CPAN - Vhudavhidzani ha Mbeazwakale ya Perl vhu Pfalaho
+Name[vi]=CPAN - Mạng lưới lưu trữ Perl đầy đủ
+Name[xh]=CPAN - Enomxholo Perl Indawo yokugcina Yomsebenzi womnatha
+Name[zh_TW]=CPAN - 全面的 Perl 收集網路
+Query=http://search.cpan.org/search?mode=\\{mode,2,"dist"}&query=\\{query,q,1}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan.desktop
new file mode 100644
index 000000000..824a7f8b0
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan.desktop
@@ -0,0 +1,54 @@
+[Desktop Entry]
+Keys=ctan
+Name=CTAN - Comprehensive TeX Archive Network
+Name[af]=CTAN - Omvattende Tex Argief Netwerk
+Name[bn]=CTAN - কমপ্রিহেনসিভ টেক আর্কাইভ নেটওয়ার্ক
+Name[bs]=CTAN - Mreža sveobuhvatne TeX arhive
+Name[ca]=CTAN - Xarxa extensa d'arxius TeX
+Name[csb]=CTAN - archiwa TeX-a
+Name[cy]=CTAN - Rhwydwaith Archif Cynhwysfawr TeX
+Name[da]=CTAN - omfattende TeX-arkivnetværk
+Name[de]=CTAN - Umfassendes TeX-Archiv
+Name[el]=CTAN - Περιεκτικό δίκτυο αρχειοθήκης TeX
+Name[eo]=CTAN - Ampleksa TeX-arĥiv-reto
+Name[es]=CTAN - Red de archivos TeX comprensivos
+Name[eu]=CTAN - TeX fitxategi sare ulergarria
+Name[fa]=CTAN - شبکۀ وسیع بایگانی TeX
+Name[fr]=CTAN (Comprehensive TeX Archive Network)
+Name[hi]=CTAN - कॉम्प्रेहेंसिव टीईएक्स आर्काइव नेटवर्क
+Name[hr]=CTAN - TeX mreža sveobuhvatne arhive
+Name[kk]=CTAN - TeX архив желісі
+Name[lt]=CTAN – Visapusiško TeX Archyvo Tinklas
+Name[lv]=CTAN - Visaptverošs TeX Arhīvu Tīkls
+Name[mk]=CTAN - Обемна мрежа со TeX архиви
+Name[mn]=CTAN - Өргөн хүрээтэй TeX-Архив
+Name[ms]=CTAN - Rangkaian Arkib TeX Komprehensif
+Name[mt]=CTAN - Databażi komprensiv ta' arkivji TeX
+Name[nb]=CTAN -– TeX-arkiv: «Comprehensive TeX Archive Network»
+Name[ne]=CTAN - व्यापक TeX सङ्ग्रह सञ्जाल
+Name[nn]=CTAN – TeX-arkiv: «Comprehensive TeX Archive Network»
+Name[nso]=Kgokagano ya Polokelo ya TeX ya Kelelo ya Godimo
+Name[pa]=CTAN - ਪੈਰਾ TeX ਆਰਚੀਵ ਨੈੱਟਵਰਕ
+Name[pl]=CTAN - archiwum TeX-a
+Name[pt_BR]=CTAN
+Name[ro]=CTAN - Arhiva completă de programe TeX
+Name[ru]=CTAN - архив TeX
+Name[rw]=CTAN - Urusobemiyoboro rw'Ubushyinguro TeX Rwuzuye
+Name[se]=CTAN – TeX-vuorká: «Comprehensive TeX Archive Network»
+Name[sl]=CPAN - Omrežje obsežnega arhiva za TeX
+Name[ta]=CTAN - முழுமையான TeX ஆவண வலைப்பின்னல்
+Name[tg]=CTAN -Шабакаи ҳаматарафаи архиви TeX
+Name[tr]=CTAN - Detaylı TeX Arşiv Ağı
+Name[tt]=CTAN - TeX Tuplamalar Çeltäre
+Name[uk]=CTAN - Всеосяжна мережа архівів TeX
+Name[uz]=CTAN - TeX boʻyicha mukammal arxiv tarmogʻi
+Name[uz@cyrillic]=CTAN - TeX бўйича мукаммал архив тармоғи
+Name[ven]=CTAN - Vhudavhidzani ha Mbeazwakale ya TeX Vhupfalaho
+Name[vi]=CTAN - Mạng lưới lưu trữ TeX đầy đủ
+Name[xh]=CTAN - Enomxholo TeX Indawo yokugcina Yomsebenzi womnatha
+Name[zh_TW]=CTAN - 全面的 Tex 收集網路
+Query=http://tug.ctan.org/cgi-bin/filenameSearch.py?action=/search/&filename=\\{ at }
+Query[ja]=http://tug.ctan.org/tools/filenamesearch.py?action=/search/&filename=\\\\{ at }
+Query[tg]=http://tug.ctan.org/cgi-bin/filenameSearch.py?action=/search/&filename=\\{ аз }
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan_cat.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan_cat.desktop
new file mode 100644
index 000000000..faa4f7fce
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan_cat.desktop
@@ -0,0 +1,77 @@
+[Desktop Entry]
+Keys=ctan_cat
+Name=CTAN Catalog
+Name[af]=CTAN Katalogus
+Name[az]=CTAN Kataloqu
+Name[be]=Каталог CTAN
+Name[bn]=CTAN ক্যাটালগ
+Name[br]=Katalog CTAN
+Name[bs]=CTAN katalog
+Name[ca]=Catàleg CTAN
+Name[cs]=CTAN katalog
+Name[csb]=CTAN - katalog TeX-owëch paczétów
+Name[cy]=Catalog CTAN
+Name[da]=CTAN-katalog
+Name[de]=CTAN-Katalog
+Name[el]=Κατάλογος CTAN
+Name[en_GB]=CTAN Catalogue
+Name[eo]=CTAN-Katalogo
+Name[es]=Catálogo CTAN
+Name[et]=CTAN kataloog
+Name[eu]=CTAN Katalogoa
+Name[fa]=فهرست CTAN
+Name[fi]=CTAN-katalogi
+Name[fr]=Catalogue du CTAN
+Name[fy]=CTAN Catalogus
+Name[ga]=Catalóg CTAN
+Name[gl]=Catálogo CTAN
+Name[he]=קטלוג CTAN
+Name[hi]=CTAN कैटलॉग
+Name[hr]=CTAN katalog
+Name[id]=Katalog CTAN
+Name[is]=CTAN Catalogue
+Name[it]=Catalogo CTAN
+Name[ja]=CTAN カタログ
+Name[ka]=CTAN კატალოგი
+Name[kk]=CTAN каталогы
+Name[km]=កាតាឡុក CTAN
+Name[ko]=CTAN 카달로그
+Name[lt]=CTAN katalogas
+Name[lv]=CTAN Katalogs
+Name[mk]=Каталог од CTAN
+Name[mn]=CTAN Катлог
+Name[ms]=Katalog CTAN
+Name[mt]=Katalgu CTAN
+Name[nb]=CTAN-katalog
+Name[nds]=CTAN Kataloog
+Name[ne]=CTAN विवरणिका
+Name[nl]=CTAN Catalogus
+Name[nn]=CTAN-katalog
+Name[pa]=CTAN ਸੂਚੀ
+Name[pl]=CTAN - katalog pakietów TeX-owych
+Name[pt]=Catálogo do CTAN
+Name[pt_BR]=Catálogo CTAN
+Name[ro]=Catalog CTAN
+Name[ru]=Каталог CTAN
+Name[rw]=Ububikobisobanuro CTAN
+Name[se]=CTAN-kataloga
+Name[sk]=Katalóg CTAN
+Name[sl]=Katalog CTAN
+Name[sr]=CTAN Каталог
+Name[sr@Latn]=CTAN Katalog
+Name[sv]=CTAN-katalog
+Name[ta]=CTAN வகை
+Name[tg]=Каталоги CTAN
+Name[th]=แคตตาล็อก CTAN
+Name[tr]=CTAN Kataloğu
+Name[tt]=CTAN Törgäge
+Name[uk]=Каталог CTAN
+Name[uz]=CTAN katalogi
+Name[uz@cyrillic]=CTAN каталоги
+Name[vi]=Thư mục CTAN
+Name[wa]=Catalogue do CTAN
+Name[zh_CN]=CTAN 目录
+Name[zh_TW]=CTAN 目錄
+Query=http://www.ctan.org/tools/cataloguesearch?action=/search/&catstring=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/dbug.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/dbug.desktop
new file mode 100644
index 000000000..d580154e2
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/dbug.desktop
@@ -0,0 +1,67 @@
+[Desktop Entry]
+Keys=dbug
+Name=Debian BTS Bug Search
+Name[af]=Debian BTS Fout Soektog
+Name[az]=Debian BTS Xəta Axtarışı
+Name[be]=Пошук памылак Debian BTS
+Name[bn]=ডেবিয়ান বি-টি-এস বাগ অনুসন্ধান
+Name[bs]=Debian BTS pretraga bugova
+Name[ca]=Cerca d'errors Debian BTS
+Name[cs]=Hledání chyb Debianu
+Name[csb]=Szëkba felów Debiana
+Name[cy]=Chwiliad Nam BTS Debian
+Name[da]=Debian BTS fejlsøgning
+Name[de]=Debian BTS-Programmfehlersuche
+Name[el]=Σύστημα εντοπισμού σφαλμάτων του Debian
+Name[eo]=Eraroserĉo de Debiano
+Name[es]=Búsqueda de fallos BTS de Debian
+Name[et]=Debiani BTS veaotsing
+Name[eu]=Debianen BTS akats bilaketa
+Name[fa]=جستجوی اشکال BTS دبیان
+Name[fi]=Debianin vikajärjestelmän haku
+Name[fr]=Recherche dans le système de gestion des bogues Debian
+Name[gl]=Procura de Erros en Debian BTS
+Name[he]=חיפוש BTS במערכת דביאן
+Name[hi]=डेबियन बीटीएस बग खोज
+Name[hr]=Debian BTS pretraživanje nedostataka
+Name[hu]=Debian BTS hibakereső
+Name[is]=Debian BTS villuleit
+Name[it]=Ricerca bug Debian BTS
+Name[ja]=Debian BTS バグ検索
+Name[kk]=Debian қателер тіркеу жүйесінде іздеу
+Name[km]=ស្វែងរក​កំហុស Debian BTS
+Name[ko]=데비안 BTS 버그 검색
+Name[lt]=Debian BTS yda paieška
+Name[lv]=Debian BTS kļūdu meklēšana
+Name[mk]=Debian BTS пребарување на бубачки
+Name[ms]=Carian Pepijat BTS Debian
+Name[nb]=Søk etter lus i Debian BTS
+Name[nds]=Debian-BTS-Fehlersöök
+Name[ne]=डेबियन BTS बग खोज्नुहोस्
+Name[nn]=Søk etter lus i Debian BTS
+Name[pa]=ਡੇਬੀਅਨ BTS ਬੱਗ ਖੋਜ
+Name[pl]=Wyszukiwanie błędów Debiana
+Name[pt]=Procura de Erros no Debian BTS
+Name[pt_BR]=Busca de bugs Debian
+Name[ro]=Căutare în sistemul Debian de raportare a erorilor
+Name[ru]=Поиск в системе учёта ошибок Debian
+Name[rw]=Ishakisha ry'Ikosaporogaramu BTS Debiyani
+Name[se]=Oza dihkiid Debian BTS:as
+Name[sk]=Hľadanie chýb na Debian BTS
+Name[sl]=Iskanje po hroščih Debian BTS
+Name[sr]=Debian-ова BTS претрага грешака
+Name[sr@Latn]=Debian-ova BTS pretraga grešaka
+Name[sv]=Sökning i Debians felspårningssystem
+Name[ta]=டெபியன் BTS பிழை தேடல்
+Name[te]=డెబియన్ బిటిఎస్ తప్పుల అన్వెషణ
+Name[th]=ค้นหาบักของ Debian BTS
+Name[tr]=Debian BTS Hata Arama
+Name[tt]=Debian'nıñ BTS (Bet Tabu Sisteme)
+Name[uk]=Пошук у системі стеження за помилками для Debian
+Name[vi]=Tìm kiếm lỗi Debian BTS
+Name[wa]=Cweraedje di Bug BTS Debian
+Name[zh_CN]=Debian BTS Bug 搜索
+Name[zh_TW]=Debian BTS 臭蟲搜尋
+Query=http://bugs.debian.org/\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/de2en.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/de2en.desktop
new file mode 100644
index 000000000..c8717a2d4
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/de2en.desktop
@@ -0,0 +1,69 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=de2en
+Name=dict.cc Translation: German to English
+Name[ar]=dict.cc ترجمة من : الألمانية إلى الإنكليزية
+Name[be]=dict.cc Пераклад: з нямецкай на англійскую
+Name[bs]=dict.cc prijevod: njemački u engleski
+Name[ca]=Traducció dict.cc: Alemany - Anglès
+Name[cs]=Překlad dic.cc: z němčiny do angličtiny
+Name[csb]=dict.cc: miemiecczi -> anielsczi
+Name[da]=dict.cc oversættelse: Tysk til engelsk
+Name[de]=dict.cc-Übersetzung: Deutsch/Englisch
+Name[el]=Μετάφραση dict.cc: Γερμανικά σε Αγγλικά
+Name[eo]=dict.cc Traduko: Germana al Angla
+Name[es]=dict.cc Traducción: alemán a inglés
+Name[et]=dict.cc tõlkimine: saksa->inglise
+Name[eu]=dict.cc itzulpena: Alemanatik ingelera
+Name[fa]=ترجمۀ dict.cc: آلمانی به انگلیسی
+Name[fi]=dict.cc Käännös: saksasta englanniksi
+Name[fr]=Traduction dict.cc : Allemand en Anglais
+Name[fy]=dict.cc-oersetting Dûts nei Ingelsk
+Name[ga]=dist.cc Aistriúchán: Gearmáinis go Béarla
+Name[gl]=Tradución dict.cc: Alemán a Inglés
+Name[he]=תרגום dict.cc: גרמני־אנגלי
+Name[hi]=dict.cc अनुवादः जर्मन से अंग्रेजी
+Name[hr]=dict.cc Prijevod: njemački na engleski
+Name[hu]=Dict.cc - Fordítás németről angolra
+Name[is]=dict.cc Þýðing: Þýska til ensku
+Name[it]=Traduzioni dict.cc: dal tedesco all'inglese
+Name[ja]=dict.cc ドイツ語-英語翻訳
+Name[kk]=dict.cc аудармашы: неміс тілінен ағылшынға
+Name[km]=dict.cc ៖ បកប្រែ​ពី​ភាសា​អាល្លឺម៉ង់​ទៅ​អង់គ្លេស
+Name[ko]=dict.cc 번역: 독일어에서 영어로
+Name[lt]=dict.cc vertimas: iš vokiečių į anglų
+Name[lv]=dict.cc Tulkošana: no Vācu uz Angļu
+Name[mk]=dict.cc превод: од германски на англиски
+Name[nb]=dict.cc Oversettelse fra tysk til engelsk
+Name[nds]=dict.cc Översetten: Hoochdüütsch na Engelsch
+Name[ne]=dict.cc अनुवाद: जर्मनीलाई अङ्ग्रेजीमा
+Name[nl]=dict.cc-vertaling: Duits naar Engels
+Name[nn]=dict.cc Omsetjing: Tysk til engelsk
+Name[pa]=dict.cc ਅਨੁਵਾਦ: ਜਰਮਨ ਤੋਂ ਅੰਗਰੇਜ਼ੀ
+Name[pl]=dict.cc: niemiecki -> angielski
+Name[pt]=Tradução do dict.cc: Alemão para Inglês
+Name[pt_BR]=dict.cc - Tradução: Alemão para Inglês
+Name[ro]=Traducere dict.cc: germană la engleză
+Name[ru]=Переводчик dictcc.com: немецко-английский
+Name[rw]=dict.cc Ivunura: Ikidage mu Cyongereza
+Name[se]=dict.cc Jorgaleapmi: Duiskkagielas eŋgelašgillii
+Name[sk]=dict.cc Preklad z nemčiny do angličtiny
+Name[sl]=Prevod dict.cc: nemščina v angleščino
+Name[sr]=Превод на dict.cc: са немачког на енглески
+Name[sr@Latn]=Prevod na dict.cc: sa nemačkog na engleski
+Name[sv]=dict.cc översättning: tyska till engelska
+Name[ta]=dict.cc Translation மொழிப்பெயர்ப்பு: ஜெர்மன் மொழியில் இருந்து ஆங்கிலத்துக்கு
+Name[te]=dict.cc అనువాదం: జెర్మన్ నుంచి ఆంగ్లం కు
+Name[th]=dict.cc แปลภาษาเยอรมันเป็นอังกฤษ
+Name[tr]=dict.cc Çevirisi: Almancadan İngilizceye
+Name[tt]=dict.cc Tärcemä: Almança -› İnglizçä
+Name[uk]=dict.cc: переклад з німецької на англійську
+Name[uz]=dict.cc tarjima: Nemischadan Inglizchaga
+Name[uz@cyrillic]=dict.cc таржима: Немисчадан Инглизчага
+Name[vi]=dict.cc Dịch: Tiếng Đức sang tiếng Anh
+Name[wa]=Ratournadje dict.cc: Almand viè inglès
+Name[zh_TW]=dict.cc 翻譯: 德文至英文
+Query=http://www.dict.cc/?s=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/de2fr.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/de2fr.desktop
new file mode 100644
index 000000000..646f3313e
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/de2fr.desktop
@@ -0,0 +1,72 @@
+[Desktop Entry]
+Type=Service
+Name=LEO - Translate Between German and French
+Name[af]=LEO - Vertaal tussn Duits en Fraans
+Name[ar]=LEO - ترجمة ألمانية فرنسية
+Name[be]=LEO - Пераклад з нямецкай на французскую і наадварот
+Name[bn]=লিও - জার্মান থেকে ফরাসী বা ফরাসী থেকে জার্মান-এ অনুবাদ করুন
+Name[bs]=LEO prijevod: njemački u francuski
+Name[ca]=LEO - Tradueix entre alemany i francès
+Name[cs]=LEO - překlad mezi němčinou a francouzštinou
+Name[csb]=LEO - dolmaczenié miemiecczi -> francësczi
+Name[da]=LEO - Oversæt mellem tysk og fransk
+Name[de]=LEO - Übersetzung Deutsch/Französisch
+Name[el]=LEO - Μετάφραση μεταξύ Γερμανικών και Γαλλικών
+Name[eo]=LEO - Traduko inter la germana kaj la franca
+Name[es]=LEO - Traducción entre alemán y francés
+Name[et]=LEO - tõlkimine: saksa-prantsuse
+Name[eu]=LEO - Itzuli alemana eta ingelesaren artean
+Name[fa]=LEO - ترجمه بین آلمانی و فرانسوی
+Name[fi]=LEO - Käännä saksan ja ranskan välillä
+Name[fr]=LEO - Traduction Allemand - Français
+Name[fy]=LEO -oersetting tusken Dûtsk en Frânsk
+Name[ga]=LEO - Aistrigh idir Gearmáinis agus Fraincis
+Name[gl]=LEO - Tradución entre Alemán e Francés
+Name[he]=LEO - תרגום בין גרמנית לצרפתית
+Name[hi]=लिओ - जर्मनी तथा फ्रेंच के बीच अनुवाद
+Name[hr]=LEO - Prevođenje između njemačkog i francuskog
+Name[hu]=LEO - Fordítás németről franciára (mindkét irányban)
+Name[is]=LEO - Þýða á milli þýsku og frönsku
+Name[it]=LEO - Traduzioni dal tedesco al francese
+Name[ja]=LEO - ドイツ語-フランス語間の翻訳
+Name[ka]=LEO - გერმანულ-ფრანგული მთარგმნელი
+Name[kk]=LEO - неміс және француз тілдер арасында аудару
+Name[km]=LEO - បកប្រែ​រវាង​ភាសា​អាល្លឺម៉ង់ និង​អង់គ្លេស
+Name[ko]=LEO - 독일어에서 프랑스어로 번역
+Name[lt]=LEO - vertimas iš vokiečių į prancūzų ir atvirkščiai
+Name[lv]=LEO - Tulkot no Vācu uz Franču
+Name[mk]=LEO - превод меѓу германски и француски
+Name[nb]=LEO – Oversettelse fra tysk til fransk
+Name[nds]=LEO - Översetten twischen Hoochdüütsch un Franzöösch
+Name[ne]=LEO - जर्मनी र फ्रान्सेलीमा अनुवाद गर्नुहोस्
+Name[nl]=LEO - vertaling tussen Duits en Frans
+Name[nn]=LEO – Omsetjing frå tysk til fransk
+Name[pa]=LEO -ਜਰਮਨ ਅਤੇ ਫਰੈਂਚ ਵਿੱਚ ਅਨੁਵਾਦ
+Name[pl]=LEO - tłumaczenie niemiecki -> francuski
+Name[pt]=LEO - Traduzir Entre Alemão e Francês
+Name[pt_BR]=LEO - Tradução entre Alemão e Francês
+Name[ro]=LEO - Traduce între germană și franceză
+Name[ru]=LEO - немецко-французский перевод
+Name[rw]=LEO - Kuvunura Hagati y'Ikidage n'Igifaransa
+Name[se]=LEO – Jorgal duiskka- ja fránskkagiela gaskkas
+Name[sk]=LEO - Preklad z nemčiny do francúzštiny
+Name[sl]=LEO - Prevod med nemščino in francoščino
+Name[sr]=LEO — превод између немачког и француског
+Name[sr@Latn]=LEO — prevod između nemačkog i francuskog
+Name[sv]=LEO - översätt från tyska till franska
+Name[ta]=LEO - ஜெர்மன் மற்றும் ப்ரென்ச் இடையே மொழிப்பெயர்க்கவும்
+Name[te]=లియొ - జెర్మన్ మరయూ ఫ్రెంచ్ మద్య అనువాదం
+Name[tg]=LEO - Тарҷума мобайни Олмонӣ ва Фаронсавӣ
+Name[th]=LEO - แปลภาษาเยอรมัน<->ฝรั่งเศส
+Name[tr]=LEO - Almancadan Fransızcaya Çeviri
+Name[tt]=LEO - Tärcemä: Almança -› Fransça
+Name[uk]=LEO - переклад між німецькою та французькою
+Name[uz]=LEO - Nemischadan Fransuzchaga tarjima
+Name[uz@cyrillic]=LEO - Немисчадан Французчага таржима
+Name[vi]=LEO - Dịch tiếng Đức sang tiếng Pháp
+Name[wa]=LEO - Ratourner etur l' almand et l' francès
+Name[zh_TW]=LEO - 翻譯德語和法語
+ServiceTypes=SearchProvider
+Keys=de2fr
+Query=http://dict.leo.org/?lp=frde&search=\\{@}
+Query[ne]=http://dict.leo.org/?lp=frdesearch=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/deb.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/deb.desktop
new file mode 100644
index 000000000..7422c8776
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/deb.desktop
@@ -0,0 +1,72 @@
+[Desktop Entry]
+Keys=deb
+Name=Debian Package Search
+Name[af]=Debian Paket Soektog
+Name[az]=Debian Paket Axtarışı
+Name[be]=Пошук пакетаў Debian
+Name[bn]=ডেবিয়ান প্যাকেজ অনুসন্ধান
+Name[br]=Klask ur pakad Debian
+Name[bs]=Pretraga Debian paketa
+Name[ca]=Cerca de paquets Debian
+Name[cs]=Hledání Debian balíčků
+Name[csb]=Szëkba paczetów Debiana
+Name[da]=Debian pakkesøgning
+Name[de]=Debian-Paketsuche
+Name[el]=Αναζήτηση πακέτων Debian
+Name[eo]=Pakaĵa serĉo de Debiano
+Name[es]=Búsqueda de paquetes de Debian
+Name[et]=Debiani paketiotsing
+Name[eu]=Debianen pakete bilaketa
+Name[fa]=جستجوی بستۀ دبیان
+Name[fi]=Debianin pakettihaku
+Name[fr]=Recherche dans le système de paquetages Debian
+Name[gl]=Procura de Pacotes Debian
+Name[he]=חיפוש חבילות דביאן
+Name[hi]=डेबियन पैकेज खोज
+Name[hr]=Debian pretraživanje paketa
+Name[hu]=Debian csomagkereső
+Name[id]=Cari Paket Debian
+Name[is]=Debian pakkaleit
+Name[it]=Ricerca pacchetti debian
+Name[ja]=Debian パッケージ検索
+Name[ka]=Debian-ის პაკეტის ძიება
+Name[kk]=Debian дестелерін табу
+Name[km]=ស្វែងរក​កញ្ចប់ Debian
+Name[ko]=데비안 꾸러미 검색
+Name[lt]=Debian paketų paieška
+Name[lv]=Debian Pakotņu meklēšana
+Name[mk]=Пребарување на Debian-пакети
+Name[ms]=Carian Pakej Debian
+Name[mt]=Tfittxija tal-pakkett Debian
+Name[nb]=Søk etter Debian-pakker
+Name[nds]=Debian-Paketsöök
+Name[ne]=डेबियन प्याकेज खोज्नुहोस्
+Name[nn]=Søk etter Debian-pakkar
+Name[pa]=ਡੇਬੀਅਨ ਪੈਕੇਜ ਖੋਜ
+Name[pl]=Wyszukiwanie pakietów Debiana
+Name[pt]=Procura de Pacotes da Debian
+Name[pt_BR]=Busca de Pacotes Debian
+Name[ro]=Căutare în sistemul Debian de pachete
+Name[ru]=Поиск пакетов Debian
+Name[rw]=Ishakisha rya Rukomatanya Debiyani
+Name[se]=Oza Debian-páhkaid
+Name[sk]=Hľadanie balíkov Debian
+Name[sl]=Iskanje po paketih Debian
+Name[sr]=Претрага Debian-ових пакета
+Name[sr@Latn]=Pretraga Debian-ovih paketa
+Name[sv]=Sökning i Debians paket
+Name[ta]=டெபியன் BTS பிழை தேடல்
+Name[tg]=Ҷустуҷӯи Debian Package
+Name[th]=ค้นหาแพคเกจของ Debian
+Name[tr]=Debian Paket Arama
+Name[tt]=Debian Tuplamaların Ezläw
+Name[uk]=Пошук пакунків для Debian
+Name[uz]=Debian paketlarini qidirish
+Name[uz@cyrillic]=Debian пакетларини қидириш
+Name[vi]=Tìm kiếm gói Debian
+Name[wa]=Cweraedje di pakets Debian
+Name[zh_CN]=Debian 软件包搜索
+Name[zh_TW]=Debian 套件搜尋
+Query=http://packages.debian.org/\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/dmoz.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/dmoz.desktop
new file mode 100644
index 000000000..5715e5161
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/dmoz.desktop
@@ -0,0 +1,51 @@
+[Desktop Entry]
+Type=Service
+Name=Open Directory
+Name[az]=Açıq Qovluq
+Name[bn]=ওপেন ডিরেক্টরি
+Name[br]=Digeriñ ur renkell
+Name[bs]=Otvoreni direktorij (DMOZ)
+Name[csb]=Open Directory - Ôpen katalog starnów WWW
+Name[cy]=Cyfeiriadur Agored
+Name[da]=Åben mappe
+Name[eo]=Malfermu dosierujon
+Name[es]=Directorio abierto
+Name[eu]=Irekitako direktorioa
+Name[fa]=باز کردن فهرست راهنما
+Name[fi]=Avoin kansio
+Name[fo]=Opin Alnótsskránni
+Name[fy]=Iepen Directory
+Name[gl]=Directorio Aberto
+Name[he]=תיקייה פתוחה
+Name[hi]=ओपन डिरेक्ट्री
+Name[id]=Buka Direktori
+Name[ka]=ღია კატალოგები
+Name[kk]=Ашық каталог
+Name[km]=ថត​បើក​ចំហ
+Name[mk]=Отворен директориум
+Name[mn]=Лавлах нээх
+Name[ne]=डाइरेक्टरी खोल्नुहोस्
+Name[pa]=ਖੁੱਲੀ ਡਾਇਰੈਕਟਰੀ
+Name[pl]=Open Directory - katalog stron WWW
+Name[ro]=Director web open-source
+Name[ru]=Открытый каталог
+Name[rw]= Gufungura Inkoranyamagambo
+Name[sl]=Odpri imenik
+Name[sr]=Отворени адресар
+Name[sr@Latn]=Otvoreni adresar
+Name[sv]=Öppen katalog
+Name[ta]=அடைவை திற
+Name[te]=ఒపెన్ డైరెక్టరి
+Name[tg]=Кушодани феҳраст
+Name[tt]=Açıq Törgäk
+Name[uk]=Відкритий каталог
+Name[ven]=Tsumbavhulwo yo Vuleaho
+Name[vi]=Thư mục mở
+Name[wa]=Drovi ridant
+Name[xh]=Vula Ulawulo
+Name[zh_TW]=開啟目錄
+Name[zu]=Vula Uhlu lwamafayela
+ServiceTypes=SearchProvider
+Keys=dmoz,odp
+Query=http://search.dmoz.org/cgi-bin/search?search=\\{@}
+Query[ne]=http://search.dmoz.org/cgi-bin/search?खोज्नुहोस्=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/docbook.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/docbook.desktop
new file mode 100644
index 000000000..fd422d7ba
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/docbook.desktop
@@ -0,0 +1,72 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=db,docbook
+Name=DocBook - The Definitive Guide
+Name[af]=Docbook - Die Definitiewe Gids
+Name[ar]=DocBook - المرشد النهائي
+Name[az]=DocBook - Bələdçi
+Name[be]=DocBook - Падручнік
+Name[bn]=ডকবুক - দি ডেফিনিটিভ গাইড
+Name[bs]=DocBook - Konačni priručnik
+Name[ca]=DocBook - La guia definitiva
+Name[csb]=DocBook (systema dokùmentacëji) - pòdrãcznik
+Name[cy]=DocBook - Y Canllaw Awdurdodol
+Name[da]=DocBook - den definitive guide
+Name[de]=DocBook - Definitive Einführung
+Name[el]=DocBook - Ο απόλυτος οδηγός
+Name[eo]=DocBook - La definitiva manlibro
+Name[es]=DocBook - La guía definitiva
+Name[eu]=DocBook - Behin-betiko gida
+Name[fa]=DocBook - راهنمای صریح
+Name[gl]=DocBook - A Guia Definitiva
+Name[he]=DocBook - המדריך האולטימטיבי
+Name[hi]=डॉकबुक - निर्णायक मार्गदर्शक
+Name[hr]=DocBook - Definitivni vodič
+Name[is]=DocBook - Opinbera handbókin
+Name[it]=DocBook - La guida definitiva
+Name[ja]=DocBook - 完全ガイド
+Name[ka]=DocBook - განსაზღვრებები
+Name[kk]=DocBook - толық бағыттамасы
+Name[km]=DocBook - មគ្គុទ្ទេសក៍​ច្បាស់លាស់
+Name[ko]=DocBook - 명확한 가이드
+Name[lo]=DocBook -the Definitive Guide
+Name[lt]=DocBook – galutinis vadovas
+Name[lv]=DocBook - Izsmeļošs Ceļvedis
+Name[mk]=DocBook - дефинитивниот водач
+Name[mn]=DocBook - Тодорхой зааварчилгаа
+Name[ms]=DocBook - Panduan Definitif
+Name[nb]=DocBook – Den endelige guiden
+Name[nds]=DocBook - De Inföhren
+Name[ne]=DocBook - निर्णायक मार्गदर्शक
+Name[nn]=DocBook – The Definitive Guide
+Name[nso]=DocBook - Keletso yeo e Feleletsego
+Name[pa]=DocBook - ਨਿਸ਼ਚਿਤ ਗਾਈਡ
+Name[pl]=DocBook (system dokumentacji) - podręcznik
+Name[pt]=DocBook - O Guia Definitivo
+Name[pt_BR]=DocBook - O Guia Definitivo
+Name[ro]=DocBook - Ghidul de referință
+Name[ru]=DocBook - полное руководство
+Name[rw]=IgitaboInyandiko - Inyifashisho ya Nyuma
+Name[se]=DocBook – The Definitive Guide
+Name[sl]=DocBook - Popolni vodič
+Name[sr]=DocBook — Дефинитивни водич
+Name[sr@Latn]=DocBook — Definitivni vodič
+Name[sv]=Den slutgiltiga guiden till docbook
+Name[ta]=Docபுத்தகம் - விளக்கமான வழிகாட்டி
+Name[tg]=DocBook - Роҳнамои таърифӣ
+Name[tr]=DocBook - Eksiksiz Rehber
+Name[tt]=DocBook - Tulı Qullanma
+Name[uk]=Посібник визначень DocBook
+Name[uz]=DocBook - toʻliq qoʻllanma
+Name[uz@cyrillic]=DocBook - тўлиқ қўлланма
+Name[ven]=DocBook - Tsumbavhulwo i Talutshedzaho
+Name[vi]=DocBook - Hướng dẫn Đầy đủ
+Name[wa]=DocBook - Li guide definitif
+Name[xh]=DocBook - Incwadi Echazayo
+Name[zh_CN]=DocBook - 权威的指南
+Name[zh_TW]=DocBook - 終極指南
+Name[zu]=DocBook - Umbonisi ochazayo
+Query=http://www.docbook.org/tdg/en/html/\\{1}.html
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/doi.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/doi.desktop
new file mode 100644
index 000000000..07b5a0a52
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/doi.desktop
@@ -0,0 +1,63 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=doi
+Name=Digital Object Identifier
+Name[ar]=مُعرّف الكائن الرّقمي
+Name[az]=Dijital Obyekt Bildiricisi
+Name[bn]=ডিজিটাল অবজেক্ট আইডেন্টিফায়ার
+Name[bs]=Digitalni identifikator objekta
+Name[ca]=Identificador d'objecte digital
+Name[cs]=Digitální identifikátor objektu
+Name[csb]=Cëfrowi identifikator òbiektu (DOI)
+Name[cy]=Dynodydd Gwrthrych Digidol
+Name[da]=Digital objekt-identifikator
+Name[de]=Identifizierung digitaler Objekte
+Name[el]=Αναγνώριση ψηφιακών αντικειμένων
+Name[eo]=Cifereca objektnomo
+Name[es]=Identificador de objeto digital
+Name[eu]=Objektu digital identifikatzailea
+Name[fa]=شناسۀ شئ دیجیتال
+Name[fi]=Digitaalinen objektitunniste
+Name[he]=מזהה אובייקט דיגיטלי
+Name[hi]=डिजिटल ऑब्जेक्ट पहचानकर्ता
+Name[hr]=Prepoznavanje digitalnog objekta
+Name[hu]=Digitális objektumazonosító (DOI)
+Name[is]=Stafrænn hlutaauðkennir
+Name[it]=Identificatore oggetti digitali
+Name[ja]=デジタルオブジェクト識別子
+Name[ka]=ციფრული ობიექტის ამომცნობი
+Name[kk]=Цифрлық нысандарды танушы
+Name[lt]=Skaitmeninių objektų identifikatorius
+Name[lv]=Digitālo objektu Meklētājs
+Name[mk]=Идентификатор на дигитален објект
+Name[mn]=Дижитал объект ялгагч
+Name[ms]=Pengenal Pasti Objek Digital
+Name[nb]=Digitalt objektnavn
+Name[ne]=डिजिटल वस्तु पहिचायक
+Name[nn]=Digitalt objektnamn
+Name[pa]=ਡਿਜ਼ੀਟਲ ਇਕਾਈ ਪਛਾਣਕਾਰ
+Name[pl]=Cyfrowy identyfikator obiektu (DOI)
+Name[pt_BR]=Identificador de Objeto Digital
+Name[ro]=Identificator digital obiect
+Name[ru]=Идентификатор цифровых объектов
+Name[rw]=Ikiranga Igikoresho Bimenyetsomibare
+Name[se]=Digitálalaš objeaktanamma
+Name[sk]=Identifikátor digitálnych objektov
+Name[sl]=Identifikator digitalnega predmeta
+Name[sr]=Идентификатор дигиталног објекта
+Name[sr@Latn]=Identifikator digitalnog objekta
+Name[sv]=Identifikation av digitala objekt
+Name[ta]=எண்ணிய பொருள் அடையாளங்காட்டி
+Name[tg]=Муайянкунандаи мавзӯъҳои рақамӣ
+Name[th]=ตัวระบุวัตถุดิจิตอล
+Name[tr]=Sayısal Nesne Kimlikleyici
+Name[tt]=Sanlı Cisem Ayırğıçı
+Name[uk]=Цифровий ідентифікатор об'єкта
+Name[vi]=Số chứng minh vật thể
+Name[wa]=Idintifieu di didjitås agayons
+Name[zh_TW]=數位物件識別
+Query=http://dx.doi.org/\\{@}
+Query[sk]=http://dx.doi.org/\\{@
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2de.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2de.desktop
new file mode 100644
index 000000000..3e5861baf
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2de.desktop
@@ -0,0 +1,73 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=en2de
+Name=dict.cc Translation: English to German
+Name[af]=dict.cc Vertaling: Engels na Duits
+Name[ar]=dict.cc ترجمة : من الإنكليزية إلى الألمانية
+Name[be]=dict.cc Пераклад: з англійскай на нямецкую
+Name[bn]=dict.cc অনুবাদ: ইংরাজি থেকে জার্মান
+Name[bs]=dict.cc prijevod: engleski u njemački
+Name[ca]=Traducció dict.cc: Anglès - Alemany
+Name[cs]=Překlad dict.cc: z angličtiny do němčiny
+Name[csb]=dict.cc: anielsczi -> miemiecczi
+Name[da]=dict.cc oversættelse: Engelsk til tysk
+Name[de]=dict.cc-Übersetzung: Englisch/Deutsch
+Name[el]=dict.cc Μετάφραση: Αγγλικά σε Γερμανικά
+Name[eo]=dict.cc Traduko: Angla al Germana
+Name[es]=dict.cc Tranducción: inglés a alemán
+Name[et]=dict.cc tõlkimine: inglise->saksa
+Name[eu]=dict.cc Itzulpena: ingelesetik alemanerara
+Name[fa]=ترجمۀ dict.cc: انگلیسی به آلمانی
+Name[fi]=dict.cc käännös: englannista saksaksi
+Name[fr]=Traduction dict.cc : Anglais en Allemand
+Name[fy]=dict.cc-oersetting: Ingelsk nei Dûtsk
+Name[ga]=dict.cc Aistriúchán: Béarla go Gearmáinis
+Name[gl]=Tradución dict.cc: Inglés a Alemán
+Name[he]=תרגום dict.cc: אנגלי־גרמני
+Name[hi]=dict.cc अनुवादः अंग्रेजी से जर्मन
+Name[hr]=dict.cc Prijevod: engleski na njemački
+Name[hu]=Dict.cc - Fordítás angolról németre
+Name[is]=dict.cc Þýðing: Enska í þýsku
+Name[it]=Traduzione dict.cc: dall'inglese al tedesco
+Name[ja]=dict.cc 英語-ドイツ語翻訳
+Name[ka]=dict.cc თარგმნა: ინგლისურ-გერმანული
+Name[kk]=dict.cc аудармашы: ағылшын тілінен немісшеге
+Name[km]=dict.cc ៖ បកប្រែ​ពី​ភាសា​អង់គ្លេស​ទៅ​អាល្លឺម៉ង់
+Name[ko]=dict.cc 번역: 영어에서 독일어로
+Name[lt]=dict.cc vertimas: iš anglų į vokiečių
+Name[lv]=dict.cc Tulkošana: no Angļu uz Vācu
+Name[mk]=dict.cc превод: од англиски на германски
+Name[nb]=dict.cc Oversettelse fra engelsk til tysk
+Name[nds]=dict.cc Översetten: Engelsch na Hoochdüütsch
+Name[ne]=dict.cc अनुवाद: अङ्ग्रेजीलाई जर्मनीमा
+Name[nl]=dict.cc-vertaling: Engels naar Duits
+Name[nn]=dict.cc Omsetjing: Engelsk til tysk
+Name[pa]=dict.cc ਅਨੁਵਾਦ: ਅੰਗਰੇਜ਼ੀ ਤੋਂ ਜਰਮਨ
+Name[pl]=dict.cc: angielski -> niemiecki
+Name[pt]=Tradução do dict.cc: Inglês para Alemão
+Name[pt_BR]=dict.cc - Tradução: Inglês para Alemão
+Name[ro]=Traducere dict.cc: engleză la germană
+Name[ru]=Переводчик dict.cc: англо-немецкий
+Name[rw]=dict.cc Ivunura:Icyongereza mu Kidage
+Name[se]=dict.cc Jorgaleapmi: Eŋgelasgielas duiskkagillii
+Name[sk]=dict.cc Preklad z angličtiny do nemčiny
+Name[sl]=Prevod dict.cc: angleščina v nemščino
+Name[sr]=Превод на dict.cc: са енглеског на немачки
+Name[sr@Latn]=Prevod na dict.cc: sa engleskog na nemački
+Name[sv]=dict.cc översättning: engelska till tyska
+Name[ta]=dict.cc Translation மொழிபெயர்ப்பு: ஆங்கிலத்தில் இருந்து ஜெர்மன் மொழிக்கு
+Name[te]=dict.cc అనువాదం: ఆంగ్లం నుంచి జెర్మన్ కు
+Name[tg]=dict.cc Тарҷума: аз Англисӣ ба Олмонӣ
+Name[th]=dict.cc แปลภาษาเยอรมันเป็นอังกฤษ
+Name[tr]=dict.cc Çevirisi: İngilizceden Almancaya
+Name[tt]=dict.cc Tärcemä: İnglizçä -› Almança
+Name[uk]=dict.cc: переклад з англійської на німецьку
+Name[uz]=dict.cc tarjima: Inglizchadan Nemischaga
+Name[uz@cyrillic]=dict.cc таржима: Инглизчадан Немисчага
+Name[vi]=dict.cc Dịch: Tiếng Anh sang tiếng Đức
+Name[wa]=Ratournaedje dict.cc di l' inglès viè l' almand
+Name[zh_TW]=dict.cc 翻譯: 英文至德文
+Query=http://www.dict.cc/?s=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2es.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2es.desktop
new file mode 100644
index 000000000..06a71322e
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2es.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=en2es
+Name=WordReference.com Translation: English to Spanish
+Name[af]=WordReference.com Vertaling: Engels na Spaans
+Name[ar]=ترجمة WordReference.com : من الإنكليزية إلى الإسبانية
+Name[az]=WordReference.com Tərcümə: İngiliscədən İspancaya
+Name[be]=WordReference.com Пераклад: з англійскай на гішпанскую
+Name[bn]=WordReference.com অনুবাদ: ইংরাজি থেকে স্প্যানিশ
+Name[bs]=WordReference.com prijevod: engleski u španski
+Name[ca]=Traducció WordReference.com: Anglès - Espanyol
+Name[cs]=Překlad WordReference.com: z angličtiny do španělštiny
+Name[csb]=WordReference.com: anielsczi -> szpańsczi
+Name[cy]=Cyfieithiad WordReference.com: Saesneg i Sbaeneg
+Name[da]=WordReference.com oversættelse: Engelsk til spansk
+Name[de]=WordReference.com-Übersetzung: Englisch/Spanisch
+Name[el]=WordReference.com Μετάφραση: Αγγλικά σε Ισπανικά
+Name[eo]=WordReference.com Traduko: angla al hispana
+Name[es]=WordReference.com Traducción: inglés a español
+Name[et]=WordReference.com tõlkimine: inglise->hispaania
+Name[eu]=WordReference.com Itzulpena: ingelesetik gaztelerara
+Name[fa]=ترجمۀ WordReference.com: انگلیسی به اسپانیایی
+Name[fi]=WordReference.com-käännös: englannista espanjaksi
+Name[fr]=Traduction sur WordReference.com : Anglais en Espagnol
+Name[fy]=WordReference.com-oersetting: Ingelsk nei Spaansk
+Name[ga]=Aistriúchán WordReference.com: Béarla go Spáinnis
+Name[gl]=Tradución WordReference.com: Inglés a Español
+Name[he]=תרגום WordReference.com: אנגלי־ספרדי
+Name[hi]=WordReference.com अनुवादः अंग्रेजी से स्पेनी
+Name[hr]=WordReference.com prijevod: engleski u španjolski
+Name[hu]=WordReference.com fordítás: angolról spanyolra
+Name[is]=WordReference.com þýðing: Ensk/spönsk
+Name[it]=Traduzione WordReference.com: dall'inglese allo spagnolo
+Name[ja]=WordReference.com 英語-スペイン語翻訳
+Name[kk]=WordReference.com ағылшын тілінен испаншаға аудару
+Name[km]=WordReference.com ៖ បកប្រែ​ពី​ភាសា​អង់គ្លេស​ទៅ​អេស្ប៉ាញ
+Name[ko]=WordReference.com 번역: 영어에서 스페인어로
+Name[lt]=WordReference.com vertimas: iš anglų į ispanų
+Name[lv]=WordReference.com Tulkošana: no Angļu uz Spāņu
+Name[mk]=WordReference.com превод: од англиски на шпански
+Name[mt]=Traduzzjoni WordReference.com: Ingliż għall-iSpanjol
+Name[nb]=WordReference.com – oversettelse fra engelsk til spansk
+Name[nds]=WordReference.com Översetten: Engelsch na Spaansch
+Name[ne]=WordReference.com Translation: अङ्ग्रेजीलाई स्पेनीसमा
+Name[nl]=WordReference.com-vertaling: Engels naar Spaans
+Name[nn]=WordReference.com – omsetjing: engelsk til spansk
+Name[pa]=WordReference.com ਅਨੁਵਾਦ:ਅੰਗਰੇਜ਼ੀ ਤੋਂ ਸਪੇਨੀ
+Name[pl]=WordReference.com: angielski -> hiszpański
+Name[pt]=Tradução do WordReference.com: Inglês para Espanhol
+Name[pt_BR]=WordReference.com - Tradução: Inglês para Espanhol
+Name[ro]=Traducere WordReference.com: engleză la spaniolă
+Name[ru]=Переводчик WordReference.com: англо-испанский
+Name[rw]=WordReference.com Ivunura: Icyongereza mu Gisipanyore
+Name[se]=WordReference.com – jorgaleapmi: eŋgelasgielas spánskkagillii
+Name[sk]=WordReference.com preklad z angličtiny do španieštiny
+Name[sl]=Prevod WordReference.com: angleščina v španščino
+Name[sr]=Превод на WordReference.com: са енглеског на шпански
+Name[sr@Latn]=Prevod na WordReference.com: sa engleskog na španski
+Name[sv]=Wordreference.com översättning: engelska till spanska
+Name[ta]=WordReference.com மொழிபெயர்ப்பு: ஆங்கிலத்தில் இருந்து ஸ்பானிஷ் மொழிக்கு
+Name[te]=WordReference.com అనువాదం: ఆంగ్లం నుంచి స్పానిష్ కు
+Name[tg]=WordReference.com Тарҷума: Аз Англисӣ ба Испанӣ
+Name[th]=WordReference.com แปลภาษาอังกฤษเป็นสเปน
+Name[tr]=WordReference.com Çevirisi: İngilizceden İspanyolcaya
+Name[tt]=WordReference.com Tärcemäse: İnglizçä -› İspança
+Name[uk]=WordReference.com: переклад з англійської на іспанську
+Name[uz]=WordReference.com tarjima: Inglizchadan Ispanchaga
+Name[uz@cyrillic]=WordReference.com таржима: Инглизчадан Испанчага
+Name[vi]=WordReference.com Dịch: tiếng Anh sang tiếng Tây Ban Nha
+Name[wa]=WordReference.com ratournaedje di l' inglès viè l' espagnol
+Name[zh_CN]=WordReference.com 翻译:英语译西班牙语
+Name[zh_TW]=WordReference.com 翻譯: 英文至西班牙文
+Query=http://www.wordreference.com/es/translation.asp?tranword=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2fr.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2fr.desktop
new file mode 100644
index 000000000..545d8fc2b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2fr.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=en2fr
+Name=WordReference.com Translation: English to French
+Name[af]=WordReference.com Vertaling: Engels na Fraans
+Name[ar]=ترجمة WordReference.com : من الإنجليزية إلى الفرنسية
+Name[az]=WordReference.com Tərcümə: İngiliscədən Fransızcaya
+Name[be]=WordReference.com Пераклад: з англійскай на французскую
+Name[bn]=WordReference.com অনুবাদ: ইংরাজি থেকে ফরাসী
+Name[bs]=WordReference.com prijevod: engleski u francuski
+Name[ca]=Traducció WordReference.com: Anglès - Francès
+Name[cs]=Překlad WordReference.com: z angličtiny do francouzštiny
+Name[csb]=WordReference.com: anielsczi -> francësczi
+Name[cy]=Cyfieithiad WordReference.com: Saesneg i Ffrangeg
+Name[da]=WordReference.com oversættelse: Engelsk til fransk
+Name[de]=WordReference.com-Übersetzung: Englisch/Französisch
+Name[el]=WordReference.com Μετάφραση: Αγγλικά σε Γαλλικά
+Name[eo]=WordReference.com Traduko: angla al franca
+Name[es]=WordReference.com Traducción: inglés a francés
+Name[et]=WordReference.com tõlkimine: inglise->prantsuse
+Name[eu]=WordReference.com Itzulpena: ingelesetik frantsesera
+Name[fa]=ترجمۀ WordReference.com: انگلیسی به فرانسوی
+Name[fi]=WordReference.com-käännös: englannista ranskaksi
+Name[fr]=Traduction sur WordReference.com : Anglais en Français
+Name[fy]=WordReference.com-oersetting: Ingelsk nei Frânsk
+Name[ga]=Aistriúchán WordReference.com: Béarla go Fraincis
+Name[gl]=Tradución WordReference.com: Inglés a Francés
+Name[he]=תרגום WordReference.com: אנגלי־צרפתי
+Name[hi]=WordReference.com अनुवादः अंग्रेजी से फ्रांसीसी
+Name[hr]=WordReference.com prijevod: engleski na francuski
+Name[hu]=WordReference.com fordítás: angolról franciára
+Name[is]=WordReference.com þýðing: Ensk/frönsk
+Name[it]=Traduzione WordReference.com: dall'inglese al francese
+Name[ja]=WordReference.com 英語-フランス語翻訳
+Name[kk]=WordReference.com ағылшын тілінен французшаға аудару
+Name[km]=WordReference.com ៖ បកប្រែ​ពី​ភាសា​អង់គ្លេស​ទៅ​បារាំង
+Name[ko]=WordReference.com 번역: 영어에서 프랑스어로
+Name[lt]=WordReference.com vertimas: iš anglų į prancūzų
+Name[lv]=WordReference.com Tulkošana: no Angļu uz Franču
+Name[mk]=WordReference.com превод: од англиски на француски
+Name[mt]=Traduzzjoni WordReference.com: Ingliż għall-Franċiż
+Name[nb]=WordReference.com – oversettelse fra engelsk til fransk
+Name[nds]=WordReference.com Översetten: Engelsch na Franzöösch
+Name[ne]=WordReference.com Translation: अङ्ग्रेजीलाई फ्रेन्चमा
+Name[nl]=WordReference.com-vertaling: Engels naar Frans
+Name[nn]=WordReference.com – omsetjing: engelsk til fransk
+Name[pa]=WordReference.com ਅਨੁਵਾਦ:ਅੰਗਰੇਜ਼ੀ ਤੋਂ ਫਰੈਂਚ
+Name[pl]=WordReference.com: angielski -> francuski
+Name[pt]=Tradução do WordReference.com: Inglês para Francês
+Name[pt_BR]=WordReference.com - Tradução: Inglês para Francês
+Name[ro]=Traducere WordReference.com: engleză la franceză
+Name[ru]=Переводчик WordReference.com: англо-французский
+Name[rw]=WordReference.com Ivunura: Icyongereza mu Gifaransa
+Name[se]=WordReference.com – jorgaleapmi: eŋgelasgielas fránskkagillii
+Name[sk]=WordReference.com preklad z angličtiny do francúzštiny
+Name[sl]=Prevod WordReference.com: angleščina v francoščino
+Name[sr]=Превод на WordReference.com: са енглеског на француски
+Name[sr@Latn]=Prevod na WordReference.com: sa engleskog na francuski
+Name[sv]=Wordreference.com översättning: engelska till franska
+Name[ta]=WordReference.com மொழிபெயர்ப்பு: ஆங்கிலத்தில் இருந்து ப்ரென்சு மொழிக்கு
+Name[te]=WordReference.com అనువాదం: ఆంగ్లం నుంచి ఫ్రెంచి కు
+Name[tg]=WordReference.com Тарҷума: Аз Англисӣ ба Фаронсавӣ
+Name[th]=WordReference.com แปลภาษาอังกฤษเป็นฝรั่งเศส
+Name[tr]=WordReference.com Çevirisi: İngilizceden Fransızcaya
+Name[tt]=WordReference.com Tärcemäse: İnglizçä -› Fransça
+Name[uk]=WordReference.com: переклад з англійської на французьку
+Name[uz]=WordReference.com tarjima: Inglizchadan Fransuzchaga
+Name[uz@cyrillic]=WordReference.com таржима: Инглизчадан Французчага
+Name[vi]=WordReference.com Dịch: Tiếng Anh sang tiếng Pháp
+Name[wa]=WordReference.com ratournaedje di l' inglès viè l' francès
+Name[zh_CN]=WordReference.com 翻译:英语译法语
+Name[zh_TW]=WordReference.com 翻譯: 英文至法文
+Query=http://www.wordreference.com/fr/Translation.asp?enfr=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2it.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2it.desktop
new file mode 100644
index 000000000..f4db13931
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/en2it.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=en2it
+Name=WordReference.com Translation: English to Italian
+Name[af]=WordReference.com Vertaling: Engels na Italiaans
+Name[ar]=ترجمة WordReference.com: من الإنجليزية إلى الإيطالية
+Name[az]=WordReference.com Tərcümə: İngiliscədən İtalyancaya
+Name[be]=WordReference.com Пераклад: з англійскай на італійскую
+Name[bn]=WordReference.com অনুবাদ: ইংরাজি থেকে ইতালীয়
+Name[bs]=WordReference.com prijevod: engleski u italijanski
+Name[ca]=Traducció WordReference.com: Anglès - Italià
+Name[cs]=Překlad WordReference.com: z angličtiny do italštiny
+Name[csb]=WordReference.com: anielsczi -> italsczi
+Name[cy]=Cyfieithiad WordReference.com: Saesneg i Eidaleg
+Name[da]=WordReference.com oversættelse: Engelsk til italiensk
+Name[de]=WordReference.com-Übersetzung: Englisch/Italienisch
+Name[el]=WordReference.com Μετάφραση: Αγγλικά σε Ιταλικά
+Name[eo]=WordReference.com Traduko: angla al itala
+Name[es]=WordReference.com Traducción: inglés a italiano
+Name[et]=WordReference.com tõlkimine: inglise->itaalia
+Name[eu]=WordReference.com Itzulpena: ingelesetik italierara
+Name[fa]=ترجمۀ WordReference.com: انگلیسی به ایتالیایی
+Name[fi]=WordReference.com-käännös: englannista italiaksi
+Name[fr]=Traduction sur WordReference.com : Anglais en Italien
+Name[fy]=WordReference.com-oersetting: Ingelsk nei Italiaansk
+Name[ga]=Aistriúchán WordReference.com: Béarla go Iodáilis
+Name[gl]=Tradución WordReference.com: Inglés a Italiano
+Name[he]=תרגום WordReference.com: אנגלי־איטלקי
+Name[hi]=WordReference.com अनुवादः अंग्रेजी से इतालवी
+Name[hr]=WordReference.com Prijevod: engleski na talijanski
+Name[hu]=WordReference.com fordítás: angolról olaszra
+Name[is]=WordReference.com þýðing: Ensk/ítölsk
+Name[it]=Traduzione WordReference.com: dall'inglese all'italiano
+Name[ja]=WordReference.com 英語-イタリア語翻訳
+Name[kk]=WordReference.com ағылшын тілінен итальяншаға аудару
+Name[km]=WordReference.com ៖ បកប្រែ​ពី​ភាសា​អង់គ្លេស​ទៅ​អ៊ីតាលី
+Name[ko]=WordReference.com 번역: 영어에서 이탈리아어로
+Name[lt]=WordReference.com vertimas: iš anglų į italų
+Name[lv]=WordReference.com Tulkošana: no Angļu uz Itāļu
+Name[mk]=WordReference.com превод: од англиски на италијански
+Name[mt]=Trasuzzjoni WordReference.com: Ingliż għat-Taljan
+Name[nb]=WordReference.com – oversettelse fra engelsk til italiensk
+Name[nds]=WordReference.com Översetten: Engelsch na Italieensch
+Name[ne]=WordReference.com Translation: अङ्ग्रेजीलाई इटलीमा
+Name[nl]=WordReference.com-vertaling: Engels naar Italiaans
+Name[nn]=WordReference.com – omsetjing: engelsk til italiensk
+Name[pa]=WordReference.com ਅਨੁਵਾਦ:ਅੰਗਰੇਜ਼ੀ ਤੋਂ ਇਤਾਲਵੀ
+Name[pl]=WordReference.com: angielski -> włoski
+Name[pt]=Tradução do WordReference.com: Inglês para Italiano
+Name[pt_BR]=WordReference.com - Tradução: Inglês para Italiano
+Name[ro]=Traducere WordReference.com: engleză la italiană
+Name[ru]=Переводчик WordReference.com: англо-итальянский
+Name[rw]=WordReference.com Ivunura: Icyongereza mu Gitaliyani
+Name[se]=WordReference.com – jorgaleapmi: eŋgelasgielas italialašgillii
+Name[sk]=WordReference.com preklad z angličtiny do talianštiny
+Name[sl]=Prevod WordReference.com: angleščina v italijanščino
+Name[sr]=Превод на WordReference.com: са енглеског на италијански
+Name[sr@Latn]=Prevod na WordReference.com: sa engleskog na italijanski
+Name[sv]=Wordreference.com översättning: engelska till italienska
+Name[ta]=WordReference.com மொழிபெயர்ப்பு: ஆங்கிலத்தில் இருந்து இத்தாலிய மொழிக்கு
+Name[te]=WordReference.com అనువాదం: ఆంగ్లం నుంచి ఇటాలియన్ కు
+Name[tg]=WordReference.com Тарҷума: Аз Англисӣ ба Итолиёгӣ
+Name[th]=WordReference.com แปลภาษาอังกฤษเป็นอิตาเลี่ยน
+Name[tr]=WordReference.com Çevirisi: İngilizceden İtalyancaya
+Name[tt]=WordReference.com Tärcemäse: İnglizçä -› İtalça
+Name[uk]=WordReference.com: переклад з англійської на італійську
+Name[uz]=WordReference.com tarjima: Inglizchadan Italyanchaga
+Name[uz@cyrillic]=WordReference.com таржима: Инглизчадан Италянчага
+Name[vi]=WordReference.com Dịch: Tiếng Anh sang tiếng Ý
+Name[wa]=WordReference.com ratournaedje di l' inglès viè l' itålyin
+Name[zh_CN]=WordReference.com 翻译:英语译意大利语
+Name[zh_TW]=WordReference.com 翻譯: 英文至義大利文
+Query=http://www.wordreference.com/it/translation.asp?enit=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/es2en.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/es2en.desktop
new file mode 100644
index 000000000..48e49a249
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/es2en.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=es2en
+Name=WordReference.com Translation: Spanish to English
+Name[af]=WordReference.com Vertaling: Spaans na Engels
+Name[ar]=ترجمة WordReference.com : من الأسبانية إلى الإنجليزية
+Name[az]=WordReference.com Tərcümə: İspancadan İngiliscəyə
+Name[be]=WordReference.com Пераклад: з гішпанскай на англійскую
+Name[bn]=WordReference.com অনুবাদ: স্প্যানিশ থেকে ইংরাজি
+Name[bs]=WordReference.com prijevod: španski u engleski
+Name[ca]=Traducció WordReference.com: Espanyol - Anglès
+Name[cs]=Překlad WordReference.com: ze španělštiny do angličtiny
+Name[csb]=WordReference.com: szpańsczi -> anielsczi
+Name[cy]=Cyfieithiad WordReference.com: Sbaeneg i Saesneg
+Name[da]=WordReference.com oversættelse: Spansk til engelsk
+Name[de]=WordReference.com-Übersetzung: Spanisch/Englisch
+Name[el]=WordReference.com Μετάφραση: Ισπανικά σε Αγγλικά
+Name[eo]=WordReference.com Traduko: hispana al angla
+Name[es]=WordReference.com Traducción: español a inglés
+Name[et]=WordReference.com tõlkimine: hispaania->inglise
+Name[eu]=WordReference.com Itzulpena: gazteleratik ingelesera
+Name[fa]=ترجمۀ WordReference.com: اسپانیایی به انگلیسی
+Name[fi]=WordReference.com-käännös: espanjasta englanniksi
+Name[fr]=Traduction sur WordReference.com : Espagnol en Anglais
+Name[fy]=WordReference.com-oersetting: Spaansk nei Ingelsk
+Name[ga]=WordReference.com Aistriúchán: Spáinnis go Béarla
+Name[gl]=Tradución WordReference.com: Español a Inglés
+Name[he]=תרגום WordReference.com: ספרדי־אנגלי
+Name[hi]=WordReference.com अनुवादः स्पेनी से अंग्रेजी
+Name[hr]=WordReference.com Prijevod: španjolski na engleski
+Name[hu]=WordReference.com fordítás: spanyolról angolra
+Name[is]=WordReference.com þýðing: Spönsk/ensk
+Name[it]=Traduzione WordReference.com: dallo spagnolo all'inglese
+Name[ja]=WordReference.com スペイン語-英語翻訳
+Name[kk]=WordReference.com испан тілінен ағылшынға аудару
+Name[km]=WordReference.com ៖ បកប្រែ​ពី​ភាសា​អេស្ប៉ាញ​ទៅ​អង់គ្លេស
+Name[ko]=WordReference.com 번역: 스페인어에서 영어로
+Name[lt]=WordReference.com vertimas: iš ispanų į anglų
+Name[lv]=WordReference.com Tulkošana: no Spāņu uz Angļu
+Name[mk]=WordReference.com превод: од шпански на англиски
+Name[mt]=Traduzzjoni WordReference.com: Spanjol għall-Ingliż
+Name[nb]=WordReference.com – oversettelse fra spansk til engelsk
+Name[nds]=WordReference.com Översetten: Spaansch na Engelsch
+Name[ne]=WordReference.com Translation: स्पेनिसलाई अङ्ग्रेजीमा
+Name[nl]=WordReference.com-vertaling: Spaans naar Engels
+Name[nn]=WordReference.com – omsetjing: spansk til engelsk
+Name[pa]=WordReference.com ਅਨੁਵਾਦ:ਸਪੇਨੀ ਤੋਂ ਅੰਗਰੇਜ਼ੀ
+Name[pl]=WordReference.com: hiszpański -> angielski
+Name[pt]=Tradução do WordReference.com: Espanhol para Inglês
+Name[pt_BR]=WordReference.com - Tradução: Espanhol para Inglês
+Name[ro]=Traducere WordReference.com: spaniolă la engleză
+Name[ru]=Переводчик WordReference.com: испанско-английский
+Name[rw]=WordReference.com Ivunura: Igisipanyore mu Cyongereza
+Name[se]=WordReference.com – jorgaleapmi: spánskkagielas eŋgelasgillii
+Name[sk]=WordReference.com preklad zo španieštiny do angličtiny
+Name[sl]=Prevod WordReference.com: španščina v angleščino
+Name[sr]=Превод на WordReference.com: са шпанског на енглески
+Name[sr@Latn]=Prevod na WordReference.com: sa španskog na engleski
+Name[sv]=Wordreference.com översättning: spanska till engelska
+Name[ta]=WordReference.com மொழிபெயர்ப்பு: ஸ்பானிஷ் மொழியில் இருந்து ஆங்கிலத்துக்கு
+Name[te]=WordReference.com అనువాదం: స్పానిష్ నుంచి ఆంగ్లం కు
+Name[tg]=WordReference.com Тарҷума: Аз Испанӣ ба Англисӣ
+Name[th]=WordReference.com แปลภาษาสเปนเป็นอังกฤษ
+Name[tr]=WordReference.com Çevirisi: İspanyolcadan İngilizceye
+Name[tt]=WordReference.com Tärcemäse: İspança -› İnglizçä
+Name[uk]=WordReference.com: переклад з іспанської на англійську
+Name[uz]=WordReference.com tarjima: Ispanchadan Inglizchaga
+Name[uz@cyrillic]=WordReference.com таржима: Испанчадан Инглизчага
+Name[vi]=WordReference.com Dịch: Tiếng Tây Ban Nha sang tiếng Anh
+Name[wa]=WordReference.com ratournaedje do castiyan viè l' inglès
+Name[zh_CN]=WordReference.com 翻译:西班牙语译英语
+Name[zh_TW]=WordReference.com 翻譯: 西班牙文至英文
+Query=http://www.wordreference.com/es/en/translation.asp?spen=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/excite.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/excite.desktop
new file mode 100644
index 000000000..f889c0257
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/excite.desktop
@@ -0,0 +1,22 @@
+[Desktop Entry]
+Type=Service
+Name=Excite
+Name[bn]=এক্সসাইট
+Name[csb]=Excite - szëkôrz starnów WWW
+Name[eo]=Ekscito
+Name[hi]=एक्साइट
+Name[ne]=उत्तेजना
+Name[nso]=Thabisa
+Name[pa]=ਐਕਸਾਟੀ
+Name[pl]=Excite - wyszukiwarka stron WWW
+Name[rw]=Gusembura
+Name[ss]=Jabulisa
+Name[ta]=ஆச்சர்யம்
+Name[te]=ఎక్సైట్
+Name[ven]=Takadza
+Name[vi]=Tra Excite
+Name[zu]=Jabulisa
+ServiceTypes=SearchProvider
+Keys=ex,excite
+Query=http://search.excite.com/search.gw?search=\\{@}
+Query[en_GB]=http://www.excite.co.uk/search/web/results?q=\\{@}&c=web
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/feedster.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/feedster.desktop
new file mode 100644
index 000000000..4843936df
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/feedster.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Type=Service
+Name=Feedster
+Name[bn]=ফীডস্টার
+Name[hi]=फीडस्टर
+Name[ja]=Feedster 検索
+Name[ne]=फेडस्टर
+Name[pa]=ਫੀਡਸਟੀਰ
+Name[ta]=பீட்ஸ்டர்
+Name[te]=ఫీడ్ స్టర్
+Name[th]=Feedster หาบล็อก
+Name[vi]=Tra Feedster
+ServiceTypes=SearchProvider
+Keys=blog,rss,feedster
+Query=http://www.feedster.com/search.php?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[he]=http://www.feedster.com/search.php?q=\\{@}&ie=UTF8&oe=UTF-88
+Query[ne]=http://www.feedster.com/search.php?q=\\{@}ie=UTF-8&oe=UTF-8
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/foldoc.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/foldoc.desktop
new file mode 100644
index 000000000..2ff15b7a7
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/foldoc.desktop
@@ -0,0 +1,72 @@
+[Desktop Entry]
+Type=Service
+Name=Free On-Line Dictionary of Computing
+Name[af]=Gratis Aanlyn Woordeboek van Rekenaars
+Name[ar]=قاموس الحاسوب و البرمجة المجاني على الخط
+Name[az]=Onlayn Kompüter Lüğəti
+Name[be]=Свабодны кампутарны слоўнік
+Name[bn]=কমপিউটিং-এর ফ্রী অন-লাইন অভিধান
+Name[bs]=Besplatni on-line rječnik računarstva (FOLDOC)
+Name[ca]=Diccionari lliure d'informàtica en línia
+Name[cs]=Online slovník výp. techniky
+Name[csb]=Wòlnoprzistãpny kòmpùtrowi słowôrz
+Name[cy]=Geiriadur Rhydd Ar-lein o Gyfrifiaduro
+Name[da]=Gratis online-computerordbog
+Name[el]=Ελεύθερο διαδικτυακό λεξικό υπολογιστών
+Name[eo]=Libera reta vortaro de komputado
+Name[es]=Free On-Line Dictionary Of Computing
+Name[et]=Vaba arvutialane võrgusõnastik
+Name[eu]=Konputazioari buruzko lineako hiztegi librea
+Name[fa]=واژه‌نامۀ برخط رایگان محاسبات
+Name[fi]=Vapaa tietokonealan sanasto
+Name[fr]=Dictionnaire de l'informatique gratuit en ligne
+Name[fy]=Free On-Line Dictionary Of Computing (IT-wurdboek)
+Name[gl]=Diccionario Libre En liña da Computación
+Name[he]=מילון מחשוב מקוון חופשי
+Name[hi]=कम्प्यूटर कार्य हेतु मुफ्त ऑन-लाइन शब्दकोश
+Name[hr]=Slobodan internetski rječnik računarstva
+Name[hu]=Szabad hozzáférésű számítástechnikai szótár
+Name[is]=Ókeypis tölvuorðabók á Netinu
+Name[it]=Dizionario libero on-line di informatica
+Name[ja]=コンピューティングに関するフリーオンライン辞書
+Name[ka]=თავისუფალი კომპიუტერული წებ ლექსიკონი
+Name[kk]=Ашық компьютерлік онлайн сөздігі
+Name[km]=វចនានុក្រម​កុំព្យូទ័រ​លើ​បណ្ដាញ មិន​គិត​ថ្លៃ
+Name[ko]=무료 온라인 컴퓨터 사전
+Name[lt]=Nemokamas kompiuterijos žodynas tinkle
+Name[lv]=Bezmaksas Datorikas vārdnīca
+Name[mk]=Слободен мрежен речник за компјутери
+Name[ms]=Kamus Perkomputeran Dalam Talian Percuma
+Name[mt]=Dizzjunarju tal-Compjuters Online B'xejn (FOLDOC)
+Name[nb]=Gratis engelsk dataordbok på nett
+Name[nds]=Free On-Line Dictionary Of Computing
+Name[ne]=कम्प्युटिङको अन-लाइन शब्दकोश
+Name[nl]=Free On-Line Dictionary Of Computing (IT-woordenboek)
+Name[nn]=Free On-Line Dictionary Of Computing
+Name[pa]=ਕੰਪਿਊਟਰ ਦਾ ਆਨ-ਲਾਈਨ ਮੁਫਤ ਸ਼ਬਦ-ਕੋਸ਼
+Name[pl]=Darmowy słownik informatyczny
+Name[pt]=Dicionário Livre de Computação On-Line
+Name[pt_BR]=Dicionário de Computação On-line Gratuito
+Name[ro]=Dicționar on-line gratuit despre calculatoare
+Name[ru]=Свободный онлайн-словарь по информатике
+Name[rw]=Inkoranyamagambo ya Mudasobwa kuri Interineti y'Ubuntu
+Name[sk]=Free On-Line Dictionary Of Computing
+Name[sl]=Free On-Line Dictionary Of Computing
+Name[sr]=Бесплатни On-Line речник за рачунаре
+Name[sr@Latn]=Besplatni On-Line rečnik za računare
+Name[sv]=Free On-Line Dictionary Of Computing (en datortermsordlista)
+Name[ta]=கணிப்பொறி அகராதி வலைதளத்தில் இலவசமாக
+Name[tg]=Луғати озоди дар шабакаи онлайн вуҷуддоштаи информатика
+Name[th]=พจนานุกรมสำหรับวิทยาการคอมพิวเตอร์ แบบออนไลน์
+Name[tr]=Ücretsiz Çevrimiçi Bilişim Sözlüğü
+Name[tt]=Sanaq Tarmağı buyınça On-Line Süzlek
+Name[uk]=Вільний словник з інформатики в мережі
+Name[uz]=Kompyuter atamalari boʻyicha Internet lugʻat
+Name[uz@cyrillic]=Компьютер атамалари бўйича Интернет луғат
+Name[vi]=Từ điển Tin học Trực tuyến Miễn phí
+Name[wa]=Diccionaire informatike libe so les fyis
+Name[zh_CN]=Free On-Line Dictionary Of Computing
+Name[zh_TW]=免費的線上電腦辭典
+ServiceTypes=SearchProvider
+Keys=fd,foldoc
+Query=http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2de.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2de.desktop
new file mode 100644
index 000000000..c73229494
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2de.desktop
@@ -0,0 +1,72 @@
+[Desktop Entry]
+Type=Service
+Name=LEO - Translate Between French and German
+Name[af]=LEO - Vertaal tussen Fraans en Duits
+Name[ar]=LEO - ترجم بين الألمانية و الفرنسية
+Name[be]=LEO - Пераклад з французскай на нямецкую і наадварот
+Name[bn]=লিও - জার্মান থেকে ফরাসী বা ফরাসী থেকে জার্মান-এ অনুবাদ করুন
+Name[bs]=LEO prijevod: francuski u njemački
+Name[ca]=LEO - Tradueix entre francès i alemany
+Name[cs]=LEO - překlad mezi francouzštinou a němčinou
+Name[csb]=LEO - dolmaczenié: francësczi ->miemiecczi
+Name[da]=LEO - Oversæt mellem fransk og tysk
+Name[de]=LEO - Übersetzung Französisch/Deutsch
+Name[el]=LEO - Μετάφραση μεταξύ Γαλλικών και Γερμανικών
+Name[eo]=LEO - Traduko inter la franca kaj la germana
+Name[es]=LEO - Traducción entre francés y alemán
+Name[et]=LEO - tõlkimine: prantsuse-saksa
+Name[eu]=LEO - itzuli alemana eta frantsearen artean
+Name[fa]=LEO - ترجمۀ بین فرانسوی و آلمانی
+Name[fi]=LEO - Käännä ranskan ja saksan välillä
+Name[fr]=LEO - Traduction Français - Allemand
+Name[fy]=LEO - oersetting tusken Fransk en Dûtsk
+Name[ga]=LEO - Aistriúchán idir Fraincis agus Gearmáinis
+Name[gl]=LEO -Tradución entre Francés e Alemán
+Name[he]=LEO - תרגום צרפתי-אנגלי
+Name[hi]=लिओ - फ्रांसीसी तथा जर्मनी के बीच अनुवाद
+Name[hr]=LEO - Prevođenje između francuskog i njemačkog
+Name[hu]=LEO - Fordítás franciáról németre (mindkét irányban)
+Name[is]=LEO - Þýða á milli frönsku og þýsku
+Name[it]=LEO - Traduzione dal francese al tedesco
+Name[ja]=LEO - フランス語-ドイツ語間の翻訳
+Name[ka]=LEO - ფრანგულ-გერმანული მთარგმნელი
+Name[kk]=LEO - француз және неміс тілдер арасында аудару
+Name[km]=LEO - បកប្រែ​រវាង​ភាសា​បារាំង និង​អាល្លឺម៉ង់
+Name[ko]=LEO - 프랑스어와 독일어 사이 번역
+Name[lt]=LEO - vertimas iš prancūzų į vokiečių ir atvirkščiai
+Name[lv]=LEO - Tulkot no Franču uz Vācu
+Name[mk]=LEO - превод меѓу француски и германски
+Name[nb]=LEO – Oversettelse fra fransk til tysk
+Name[nds]=LEO - Översetten twischen Franzöösch un Hoochdüütsch
+Name[ne]=LEO - फ्रेन्च र जर्मनमा अनुवाद गर्नुहोस्
+Name[nl]=LEO - vertaling tussen Frans en Duits
+Name[nn]=LEO – Omsetjing frå fransk til tysk
+Name[pa]=LEO - ਫਰੈਂਚ ਤੇ ਜਰਮਨ ਵਿੱਚ ਅਨੁਵਾਦ
+Name[pl]=LEO - tłumaczenie: francuski ->niemiecki
+Name[pt]=LEO - Traduzir Entre Francês e Alemão
+Name[pt_BR]=LEO - Tradução entre Francês e Alemão
+Name[ro]=LEO - Traducere între franceză și germană
+Name[ru]=LEO - французско-немецкий перевод
+Name[rw]=LEO - Kuvunura Hagati y'Igifaransa n'Icyongereza
+Name[se]=LEO – jorgal fránskka- ja duiskkagiela gaskkas
+Name[sk]=LEO - Preklad z francúzštiny do nemčiny
+Name[sl]=LEO - Prevod med francoščino in nemščino
+Name[sr]=LEO — превод између француског и немачког
+Name[sr@Latn]=LEO — prevod između francuskog i nemačkog
+Name[sv]=LEO - översätt från franska till tyska
+Name[ta]=LEO - ப்ரென்ச் மற்றும் ஜெர்மன் இடையே மொழிப்பெயர்க்கவும்
+Name[te]=లియొ - ఫ్రెంచ్ మరయూ జెర్మన్ మద్య అనువాదం
+Name[tg]=LEO - Тарҷума дар байни Фрасавию Олмонӣ
+Name[th]=LEO - แปลภาษา ฝรั่งเศส <-> เยอรมัน
+Name[tr]=LEO - Fransızcadan Almancaya Çeviri
+Name[tt]=LEO - Tärcemä: Fransça -› Almança
+Name[uk]=LEO - переклад між французькою та німецькою
+Name[uz]=LEO - Fransuzchadan Nemischaga tarjima
+Name[uz@cyrillic]=LEO - Французчадан Немисчага таржима
+Name[vi]=LEO - Dịch tiếng Pháp sang tiếng Đức
+Name[wa]=LEO - Ratournaedje do francès viè l' almand
+Name[zh_TW]=LEO - 翻譯法語和德語
+ServiceTypes=SearchProvider
+Keys=fr2de
+Query=http://dict.leo.org/?lp=frde&search=\\{@}
+Query[ne]=http://dict.leo.org/?lp=frdesearch=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2en.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2en.desktop
new file mode 100644
index 000000000..44694be00
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2en.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=fr2en
+Name=WordReference.com Translation: French to English
+Name[af]=WordReference.com Vertaling: Fraans na Engels
+Name[ar]=ترجمة WordReference.com: من الفرنسية إلى الإنجليزية
+Name[az]=WordReference.com Tərcümə: Fransızcadan İngiliscəyə
+Name[be]=Пераклад WordReference.com: з французскай на англійскую
+Name[bn]=WordReference.com অনুবাদ: ফরাসী থেকে ইংরাজি
+Name[bs]=WordReference.com prijevod: francuski u engleski
+Name[ca]=Traducció WordReference.com: Francès - Anglès
+Name[cs]=Překlad WordReference.com: z francouzštiny do angličtiny
+Name[csb]=WordReference.com: francësczi -> anielsczi
+Name[cy]=Cyfieithiad WordReference.com: Ffrangeg i Saesneg
+Name[da]=WordReference.com oversættelse: Fransk til engelsk
+Name[de]=WordReference.com-Übersetzung: Französisch/Englisch
+Name[el]=WordReference.com Μετάφραση: Γαλλικά σε Αγγλικά
+Name[eo]=WordReference.com Traduko: franca al angla
+Name[es]=WordReference.com Traducción: francés a inglés
+Name[et]=WordReference.com tõlkimine: prantsuse->inglise
+Name[eu]=WordReference.com Itzulpena: frantsesetik ingelesera
+Name[fa]=ترجمۀ WordReference.com: فرانسوی به انگلیسی
+Name[fi]=WordReference.com-käännös: ranskasta englanniksi
+Name[fr]=Traduction sur WordReference.com : Français en Anglais
+Name[fy]=WordReference.com-oersetting: Frânsk nei Ingelsk
+Name[ga]=Aistriúchán WordReference.com: Fraincis go Béarla
+Name[gl]=Tradución WordReference.com: Francés a Inglés
+Name[he]=תרגום WordReference.com: צרפתי־אנגלי
+Name[hi]=WordReference.com अनुवादः फ्रांसीसी से अंग्रेजी
+Name[hr]=WordReference.com Prijevod: francuski na engleski
+Name[hu]=WordReference.com fordítás: franciáról angolra
+Name[is]=WordReference.com þýðing: Frönsk/ensk
+Name[it]=Traduzione WordReference.com: dal francese all'inglese
+Name[ja]=WordReference.com フランス語-英語翻訳
+Name[kk]=WordReference.com француз тілінен ағылшынға аудару
+Name[km]=WordReference.com ៖ បកប្រែ​ពី​ភាសា​បារាំង​ទៅ​អង់គ្លេស
+Name[ko]=WordReference.com 번역: 프랑스어에서 영어로
+Name[lt]=WordReference.com vertimas: iš prancūzų į anglų
+Name[lv]=WordReference.com Tulkošana: no Franču uz Angļu
+Name[mk]=WordReference.com превод: од француски на англиски
+Name[mt]=Traduzzjoni WordReference.com: Franċiż għall-Ingliż
+Name[nb]=WordReference.com – oversettelse fra fransk til engelsk
+Name[nds]=WordReference.com Översetten: Franzöösch na Engelsch
+Name[ne]=WordReference.com Translation: फ्रेन्चलाई अङ्ग्रेजीमा
+Name[nl]=WordReference.com-vertaling: Frans naar Engels
+Name[nn]=WordReference.com – omsetjing: fransk til engelsk
+Name[pa]=WordReference.com ਅਨੁਵਾਦ:ਫਰੈਂਚ ਤੋਂ ਅੰਗਰੇਜ਼ੀ
+Name[pl]=WordReference.com: francuski -> angielski
+Name[pt]=Tradução do WordReference.com: Francês para Inglês
+Name[pt_BR]=WordReference.com - Tradução: Francês para Inglês
+Name[ro]=Traducere WordReference.com: franceză la engleză
+Name[ru]=Переводчик WordReference.com: французско-английский
+Name[rw]=WordReference.com Ivunura: Igifaransa mu Cyongereza
+Name[se]=WordReference.com – jorgaleapmi: fránskkagielas eŋgelasgillii
+Name[sk]=WordReference.com preklad z francúzštiny do angličtiny
+Name[sl]=Prevod WordReference.com: francoščina v angleščino
+Name[sr]=Превод на WordReference.com: са француског на енглески
+Name[sr@Latn]=Prevod na WordReference.com: sa francuskog na engleski
+Name[sv]=Wordreference.com översättning: franska till engelska
+Name[ta]=WordReference.com மொழிபெயர்ப்பு: பிரென்சு மொழியில் இருந்து ஆங்கிலத்துக்கு
+Name[te]=WordReference.com అనువాదం: ఫ్రెంచి నుంచి ఆంగ్లం కు
+Name[tg]=WordReference.com Тарҷума: аз Франсавӣ ба Англисӣ
+Name[th]=WordReference.com แปลภาษาฝรั่งเศสเป็นอังกฤษ
+Name[tr]=WordReference.com Çevirisi: Fransızcadan İngilizceye
+Name[tt]=WordReference.com Tärcemäse: Fransça -› İnglizçä
+Name[uk]=WordReference.com: переклад з французької на англійську
+Name[uz]=WordReference.com tarjima: Fransuzchadan Inglizchaga
+Name[uz@cyrillic]=WordReference.com таржима: Французчадан Инглизчага
+Name[vi]=WordReference.com Dịch: tiếng Pháp sang tiếng Anh
+Name[wa]=WordReference.com ratournaedje do francès viè l' inglès
+Name[zh_CN]=WordReference.com 翻译:法语译英语
+Name[zh_TW]=WordReference.com 翻譯: 法文至英文
+Query=http://www.wordreference.com/fr/en/translation.asp?fren=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/freedb.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/freedb.desktop
new file mode 100644
index 000000000..0ee044112
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/freedb.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Type=Service
+Name=FreeDB
+Name[bn]=ফ্রী-ডি.বি.
+Name[eo]=Libera Datumbazo
+Name[hi]=फ्री-डीबी
+Name[ne]=नि: शुल्क DB
+Name[ta]=இலவசடிபி
+Name[te]=ఫ్రీడిబి
+Name[tg]=ОзодиDB
+Name[vi]=Tra FreeDB
+ServiceTypes=SearchProvider
+Keys=fdb,freedb
+Query=http://www.freedb.org/freedb_search.php?words=\\{@}
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop
new file mode 100644
index 000000000..598c26a06
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Type=Service
+Name=Freshmeat
+Name[bn]=ফ্রেশমীট
+Name[csb]=Freshmeat - szëkôrz programów
+Name[hi]=फ्रेशमीट
+Name[mn]=Шинэмах
+Name[ne]=फ्रेसमिट
+Name[nso]=Nama ye Botse
+Name[pa]=ਤਾਜ਼ਾ
+Name[pl]=Freshmeat - wyszukiwarka programów
+Name[ta]=புது இறைச்சி
+Name[te]=ఫ్రెష్ మీట్
+Name[ven]=Namathethe
+Name[vi]=Tra Freshmeat
+Name[zu]=Inyama yamanje
+ServiceTypes=SearchProvider
+Keys=fm,freshmeat
+Query=http://freshmeat.net/search/?q=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/froogle.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/froogle.desktop
new file mode 100644
index 000000000..2cb235ac1
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/froogle.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Type=Service
+Name=Froogle
+Name[bn]=ফ্রুগল্
+Name[hi]=फ्रूगल
+Name[ja]=Froogle 商品検索
+Name[ne]=फ्रुगल
+Name[pa]=ਫਰੂਗਲ
+Name[ta]=ஃப்ரூகுல்
+Name[te]=ఫ్రూగుల్
+Name[th]=Froogle หาสินค้าผ่าน google
+Name[vi]=Tra Froogle
+ServiceTypes=SearchProvider
+Keys=froogle
+Query=http://froogle.google.com/froogle?q=\\{@}
+Query[en_GB]=http://froogle.google.co.uk/froogle?q=\\{@}
+Query[nb]=http://froogle.google.no/froogle?q=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/fsd.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/fsd.desktop
new file mode 100644
index 000000000..ed09b4b7e
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/fsd.desktop
@@ -0,0 +1,66 @@
+[Desktop Entry]
+Type=Service
+Name=FSF/UNESCO Free Software Directory
+Name[af]=FSF/UNESCO Gratis Sagteware Gids
+Name[ar]=دليل FSF/UNESCO للبرامج الحرّة
+Name[be]=Каталог свабоднага праграмнага забеспячэння FSF/UNESCO
+Name[bn]=FSF/UNESCO ফ্রী সফ্‌টওয়্যার ডিরেক্টরি
+Name[br]=Renkell meziantoù frank FSF/UNESCO
+Name[bs]=FSF/UNESCO imenik slobodnog softvera
+Name[ca]=Directori de programari lliure FSF/UNESCO
+Name[cs]=Adresář svobodného softwaru FSF/UNESCO
+Name[csb]=Wòlnoprzistãpny katalog programów FSF/UNESCO
+Name[da]=FSF/UNESCO Free Software katalog
+Name[eo]=FSF/UNESCO Libera Programa Dosierujo
+Name[es]=Directorio de software libre de FSF/UNESCO
+Name[eu]=FSF/UNESCO Free Software direktorioa
+Name[fa]=واژه‌نامۀ نرم‌افزار آزاد FSF/UNESCO
+Name[fi]=FSF/UNESCO Vapaa ohjelmien hakemisto
+Name[fr]=Catalogue de logiciels libres FSF/UNESCO
+Name[ga]=Eolaire Saorbhogearraí FSF/UNESCO
+Name[gl]=Directório de Software Libre FSF/UNESCO
+Name[he]=ספריית תוכנה חופשית של FSF/UNESCO
+Name[hi]=एफएसएफ/यूनेस्को फ्री सॉफ़्टवेयर डिरेक्ट्री
+Name[hr]=FSF/UNESCO mapa slobodnog softvera
+Name[hu]=FSF/UNESCO szabadszoftver-gyűjtemény
+Name[it]=Elenco software libero FSF/UNESCO
+Name[ja]=FSF/UNESCO フリーソフトウェア ディレクトリ
+Name[ka]=FSF/UNESCO თავისუფალი პროგრამების კატალოგი
+Name[kk]=FSF/UNESCO ашық бағдарламалық жасау каталогы
+Name[km]=ថត​កម្មវិធី​ឥត​គិត​ថ្លៃ​របស់ FSF/UNESCO
+Name[ko]=FSF/UNESCO 자유 소프트웨어 디렉터리
+Name[lt]=FSF/UNESCO laisvos programinės įrangos katalogas
+Name[lv]=FSF/UNESCO Brīvās programmatūras krātuve
+Name[mk]=Каталог на слободен софтвер на FSF/UNESCO
+Name[ms]=Direktori Perisian Percuma FSF/UNESCO
+Name[nb]=FSF/UNESCO-katalogen over fri programvare
+Name[nds]=FSF/UNESCO-Verteken mit fre'e Programmen
+Name[ne]=FSF/UNESCO नि: शुल्क सफ्टवेयर शब्दकोश
+Name[nn]=FSF/UNESCO-katalogen over fri programvare
+Name[pa]=FSF/UNESCO ਮੁਕਤ ਸਾਫਟਵੇਅਰ ਡਾਇਰੈਕਟਰੀ
+Name[pl]=Słownik darmowego oprogramowania FSF/UNESCO
+Name[pt]=Directoria de Software Livre FSF/UNESCO
+Name[pt_BR]=Diretório de Software Livre - FSF/UNESCO
+Name[ro]=Director de software liber FSF/UNESCO
+Name[ru]=Каталог свободного ПО FSF/UNESCO
+Name[rw]=Ububiko Porogaramu y'Ubuntu FSF/UNESCO
+Name[sk]=FSF/UNESCO Adresár voľného softwaru
+Name[sl]=Imenik prostega programja FSF/UNESCO
+Name[sr]=Адресар слободног софтвера FSF-а/UNESCO-а
+Name[sr@Latn]=Adresar slobodnog softvera FSF-a/UNESCO-a
+Name[sv]=FSF/UNESCO katalog över fri programvara
+Name[ta]=FSF/UNESCO இலவச மென்பொருள் அடைவு
+Name[tg]=FSF/UNESCO директорияи озоди шабакаи локалӣ
+Name[th]=FSF/UNESCO ไดเร็คทอรีซอฟท์แวร์เสรี
+Name[tr]=FSF/UNESCO Ücretsiz Yazılım Dizini
+Name[tt]=FSF/UNESCO'nıñ Buş Yazılımnar Törgäge
+Name[uk]=Словник з вільного програмного забезпечення FSF/UNESCO
+Name[vi]=Thư mục Phần mềm Tự do FSF/UNESCO
+Name[wa]=Livreye di libes programes FSF/UNESCO
+Name[zh_TW]=FSF/UNESCO 自由軟體目錄
+ServiceTypes=SearchProvider
+Keys=fsd
+Query=http://directory.fsf.org/search/?query=\\{@}
+Query[nds]=http://directory.fsf.org/search/fsd-search.py?q=\\{@}
+
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google.desktop
new file mode 100644
index 000000000..535fff91f
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google.desktop
@@ -0,0 +1,31 @@
+[Desktop Entry]
+Type=Service
+Name=Google
+Name[bn]=গুগল্
+Name[csb]=Google - szëkôrz starnów WWW
+Name[fa]=گوگل
+Name[he]=גוגל
+Name[hi]=गूगल
+Name[mn]=Гооглэ
+Name[ne]=गुगल
+Name[pl]=Google - wyszukiwarka stron WWW
+Name[ta]=கூகுல்
+Name[te]=గూగుల్
+Name[th]=กูเกิ้ล
+ServiceTypes=SearchProvider
+Keys=gg,google
+Query=http://www.google.com/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[de]=http://www.google.de/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[en_GB]=http://www.google.co.uk/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[fi]=http://www.google.fi/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[fr]=http://www.google.fr/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[he]=http://www.google.co.il/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[it]=http://www.google.it/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[nb]=http://www.google.no/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[ne]=http://www.google.com/search?q=\\{@}ie=UTF-8&oe=UTF-8
+Query[nl]=http://www.google.nl/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[nn]=http://www.google.com/search?hl=nn&q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[pt]=http://www.google.pt/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[wa]=http://www.google.be/search?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[zh_TW]=http://www.google.com.tw/search?q=\\{@}&ie=UTF-8&oe=UTF-8&hl=zh-TW
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_advanced.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_advanced.desktop
new file mode 100644
index 000000000..121ca5e1b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_advanced.desktop
@@ -0,0 +1,95 @@
+[Desktop Entry]
+Keys=ggx
+Name=Google Advanced Search
+Name[af]=Google Gevorderde Soektog
+Name[ar]=بحث Google المتقدم
+Name[az]=Google Təkmilləşdirilmiş Axtarış
+Name[be]=Адмысловы пошук Google
+Name[bn]=গুগল্ অগ্রসর অনুসন্ধান
+Name[br]=Klask Google barek
+Name[bs]=Google napredno pretraživanje
+Name[ca]=Recerca avançada de Google
+Name[cs]=Rozšířené hledání (Google)
+Name[csb]=Google - awansowónô szëkba
+Name[cy]=Chwilio Uwch Google
+Name[da]=Google avanceret søgning
+Name[de]=Erweiterte Google-Suche
+Name[el]=Προχωρημένη αναζήτηση του Google
+Name[eo]=Detala serĉo ĉe "Google"
+Name[es]=Búsqueda avanzada de Google
+Name[et]=Google täpsem otsing
+Name[eu]=Googleren bilaketa aurreratua
+Name[fa]=جستجوی پیشرفتۀ گوگل
+Name[fi]=Googlen lisähaku
+Name[fo]=Google (tilkomin leiting)
+Name[fr]=Recherche avancée avec Google
+Name[fy]=Google Avansearre Sykje
+Name[ga]=Cuardach Casta Google
+Name[gl]=Procura Avanzada de Google
+Name[he]=חיפוש מתקדם של גוגל
+Name[hi]=गूगल विस्तृत खोज
+Name[hr]=Google napredno pretraživanje
+Name[hu]=Google részletes keresés
+Name[is]=Google - Nánar
+Name[it]=Ricerca avanzate di Google
+Name[ja]=Google 検索オプション
+Name[ka]=Google დეტალური ძიება
+Name[kk]=Google кеңейтілген іздеу
+Name[km]=ស្វែងរក​កម្រិត​ខ្ពស់​តាម​រយៈ Google
+Name[ko]=Google 고급 검색
+Name[lt]=Išplėsta Google paieška
+Name[lv]=Google Uzlabotā Meklēšana
+Name[mk]=Google - напредно пребарување
+Name[mn]=Өргөтгсөн Гооглэ-хайлт
+Name[ms]=Carian Lanjutan Google
+Name[mt]=Tfittxija avvanzata Google
+Name[nb]=Google avansert søk
+Name[nds]=Google sien verwiederte Söök
+Name[ne]=गुगल उन्नत खोजी
+Name[nl]=Google geavanceerd zoeken
+Name[nn]=Google avansert søk
+Name[nso]=Nyako yeo e Beetswegopele ya Google
+Name[pa]=Google ਤਕਨੀਕੀ ਖੋਜ
+Name[pl]=Google - wyszukiwanie zaawansowane
+Name[pt]=Pesquisa Avançada do Google
+Name[pt_BR]=Procura Avançada do Google
+Name[ro]=Căutare avansată Google
+Name[ru]=Google - продвинутый поиск
+Name[rw]=Ishakisha Rihanitse rya Google
+Name[se]=Dárkilis ohcan Google báikkis
+Name[sk]=Pokročilé hľadanie Google
+Name[sl]=Napredno iskanje z Google
+Name[sr]=Google-ово напредно претраживање
+Name[sr@Latn]=Google-ovo napredno pretraživanje
+Name[ss]=Kusesha lokusembili kwe Google
+Name[sv]=Google avancerad sökning
+Name[ta]=கூகுல் மேம்படுத்தப்பட்ட தேடுதல்
+Name[te]=గూగుల్ మరింత నిసిస్టమైన అన్వెషణ
+Name[tg]=Ҷустуҷӯи пешрафта дар Google
+Name[th]=ค้นหาด้วยกูเกิ้ลแบบขั้นสูง
+Name[tr]=Google Gelişmiş Arayıcı
+Name[tt]=Google aşa Tögäl Ezläw
+Name[uk]=Складний пошук на Google
+Name[uz]=Google - Ilgʻor qidirish
+Name[uz@cyrillic]=Google - Илғор қидириш
+Name[ven]=U setsha ho Engedzeaho ha Google
+Name[vi]=Tra cứu Nâng cao Google
+Name[wa]=Ricweraedje avancî di Google
+Name[xh]=Uphendlo Olubhekisa phambili lwe Google
+Name[zh_CN]=Google 高级搜索
+Name[zh_TW]=Google 進階搜尋
+Name[zu]=Usesho lwezinga eliphezulu lwe-Google
+Query=http://www.google.com/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[en_GB]=http://www.google.co.uk/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[es]=http://www.google.com/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i" }&as_sitesearch=\\{site}&safe=\\{safe, "active"}&ie=UTF-8&oe=UTF-8
+Query[fi]=http://www.google.fi/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[fr]=http://www.google.fr/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[he]=http://www.google.co.il/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[nb]=http://www.google.no/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[nl]=http://www.google.nl/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[nn]=http://www.google.com/search?hl=nn&as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[pt]=http://www.google.pt/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Query[wa]=http://www.google.be/search?as_q=\\{all,@}&num=\\{num,"10"}&btnG=Google+Search&as_epq=\\{exact,""}&as_oq=\\{any,""}&as_eq=\\{without,""}&lr=\\{lang,""}&as_ft=\\{ft,"i"}&as_filetype=\\{filetype,""}&as_qdr=\{date,"all"}&as_occt=\\{occ,"any"}&as_dt=\\{siteop,"i"}&as_sitesearch=\\{site}&safe=\\{safe,"active"}&ie=UTF-8&oe=UTF-8
+Charset=utf8
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_groups.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_groups.desktop
new file mode 100644
index 000000000..ee9f24f3a
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_groups.desktop
@@ -0,0 +1,89 @@
+[Desktop Entry]
+Type=Service
+Name=Google Groups
+Name[af]=Google Groepe
+Name[ar]=مجموعات Google
+Name[az]=Google Qroupları
+Name[be]=Групы Google
+Name[bn]=গুগল্ গ্রুপস
+Name[br]=Stroladoù Google
+Name[bs]=Google Grupe
+Name[ca]=Grups a Google
+Name[cs]=Google - diskuzní skupiny
+Name[csb]=Google - archiwa diskùsjowëch karnów
+Name[cy]=Grwpiau Google
+Name[da]=Google-grupper
+Name[de]=Google-Newsgruppen
+Name[el]=Ομάδες του Google
+Name[eo]=Forumserĉo ĉe "Google"
+Name[es]=Grupos de Google
+Name[et]=Google uudisegrupid
+Name[eu]=Google taldeak
+Name[fa]=گروههای گوگل
+Name[fi]=Googlen keskusteluryhmät
+Name[fr]=Groupes Google
+Name[fy]=Google Diskusjegroepen
+Name[ga]=Grúpaí Google
+Name[gl]=Grupos de Google
+Name[he]=קבוצות גוגל
+Name[hi]=गूगल समूह
+Name[hr]=Google Grupe
+Name[is]=Google - Ráðstefnur
+Name[it]=Google gruppi
+Name[ja]=Google グループ
+Name[ka]=Google ჯგუფები
+Name[kk]=Google топтары
+Name[km]=ក្រុម Google
+Name[ko]=Google 그룹스
+Name[lt]=Google grupės
+Name[lv]=Google Grupas
+Name[mk]=Google-групи
+Name[mn]=Гооглэ-Мэдээлэл
+Name[ms]=Kumpulan Google
+Name[mt]=Gruppi Google
+Name[nb]=Google-grupper
+Name[ne]=गुगल समूह
+Name[nl]=Google Groepen
+Name[nso]=Dihlopha tsa Google
+Name[pa]=Google ਗਰੁੱਪ
+Name[pl]=Google - archiwum grup dyskusyjnych
+Name[pt]=Grupos do Google
+Name[pt_BR]=Grupos do Google
+Name[ro]=Grupuri Google
+Name[ru]=Группы Google
+Name[rw]=Amatsinda Google
+Name[sk]=Diskusné skupiny Google
+Name[sl]=Skupine Google
+Name[sr]=Google-ове групе
+Name[sr@Latn]=Google-ove grupe
+Name[ss]=Emacembu ye Google
+Name[sv]=Google-grupper
+Name[ta]=கூகுல் குழுக்கள்
+Name[te]=గూగుల్ గుంపులు
+Name[tg]=Гурӯҳҳои Google
+Name[th]=กลุ่มข่าวกูเกิ้ล
+Name[tr]=Google Grupları
+Name[tt]=Google Törkemnäre
+Name[uk]=Групи Google
+Name[uz]=Google - Guruhlar
+Name[uz@cyrillic]=Google - Гуруҳлар
+Name[ven]=Tshigwada tsha Google
+Name[vi]=Nhóm Google
+Name[wa]=Groupes Google
+Name[xh]=Amaqela e Google
+Name[zh_CN]=Google 兴趣组
+Name[zh_TW]=Google 群組
+Name[zu]=Amaqembu e-Google
+ServiceTypes=SearchProvider
+Keys=ggg,groups,dj,deja
+Query=http://groups.google.com/groups?oi=djq&as_q=\\{@}
+Query[en_GB]=http://groups.google.co.uk/groups?oi=djq&as_q=\\{@}
+Query[fr]=http://groups.google.fr/groups?oi=djq&as_q=\\{@}
+Query[he]=http://groups.google.co.il/groups?oi=djq&as_q=\\{@}
+Query[nb]=http://groups.google.no/groups?hl=nn&oi=djq&as_q=\\{@}
+Query[ne]=http://groups.google.com/groups?oi=djqas_q=\\{@}
+Query[nl]=http://groups.google.nl/groups?oi=djq&as_q=\\{@}
+Query[nn]=http://groups.google.com/groups?hl=nn&oi=djq&as_q=\\{@}
+Query[pt]=http://groups.google.pt/groups?oi=djq&as_q=\\{@}
+Query[wa]=http://groups.google.be/groups?oi=djq&as_q=\\{@}
+Query[zh_TW]=http://groups.google.com.tw/groups?oi=djq&as_q=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_images.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_images.desktop
new file mode 100644
index 000000000..e0b808df9
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_images.desktop
@@ -0,0 +1,94 @@
+[Desktop Entry]
+Type=Service
+Name=Google Image Search
+Name[af]=Google Beeld Soektog
+Name[ar]=بحث صور Google
+Name[az]=Google Rəsm Axtarıcısı
+Name[be]=Пошук відарысаў Google
+Name[bn]=গুগল্ চিত্র অনুসন্ধান
+Name[br]=Klask skeudennoù Google
+Name[bs]=Google traženje slika
+Name[ca]=Recerca d'imatges a Google
+Name[cs]=Hledání obrázků (Google)
+Name[csb]=Google - szëkba òbrôzków
+Name[cy]=Chwilio Delweddau Google
+Name[da]=Google billedsøgning
+Name[de]=Google-Bildsuche
+Name[el]=Αναζήτηση εικόνων του Google
+Name[eo]=Bildoserĉo ce "Google"
+Name[es]=Búsqueda de imágenes de Google
+Name[et]=Google piltide otsing
+Name[eu]=Google irudi bilaketa
+Name[fa]=جستجوی تصویر گوگل
+Name[fi]=Googlen kuvahaku
+Name[fo]=Google (myndaleiting)
+Name[fr]=Recherche d'images avec Google
+Name[fy]=Google printsjesykjen
+Name[ga]=Cuardach Íomhá Google
+Name[gl]=Procura de Imaxes de Google
+Name[he]=חיפוש תמונות של גוגל
+Name[hi]=गूगल छवि खोज
+Name[hr]=Google pretraživanje slika
+Name[hu]=Google képkereső
+Name[is]=Google - Myndaleit
+Name[it]=Ricerca immagini di Google
+Name[ja]=Google 画像検索
+Name[ka]=Google ნახატის ძიება
+Name[kk]=Google кескіндерді табу
+Name[km]=ស្វែងរក​រូបភាព​តាម​រយៈ Google
+Name[ko]=Google 이미지 검색
+Name[lt]=Google paveikslėlių paieška
+Name[lv]=Google Attēlu Meklēšana
+Name[mk]=Google - пребарување на слики
+Name[mn]=Гооглэ-Зураг хайлт
+Name[ms]=Carian Imej Google
+Name[mt]=Fittex stampi fuq Google
+Name[nb]=Bildesøk i Google
+Name[nds]=Google sien Biller-Söök
+Name[ne]=गुगल छवि खोजी
+Name[nl]=Google afbeeldingen zoeken
+Name[nn]=Google biletsøk
+Name[nso]=Nyako ya Ponagalo ya Google
+Name[pa]=Google ਚਿੱਤਰ ਖੋਜ
+Name[pl]=Google - wyszukiwanie zdjęć
+Name[pt]=Pesquisa de Imagens do Google
+Name[pt_BR]=Busca de Imagens do Google
+Name[ro]=Căutare de imagini Google
+Name[ru]=Рисунки Google
+Name[rw]=Ishakisha Ishusho Google
+Name[se]=Oza govaid Google báikkis
+Name[sk]=Hľadanie obrázkov Google
+Name[sl]=Iskanje slik z Google
+Name[sr]=Google-ово претраживање слика
+Name[sr@Latn]=Google-ovo pretraživanje slika
+Name[ss]=Kusesha kwemfanekiso ku Google
+Name[sv]=Google bildsökning
+Name[ta]=கூகுல் சித்திர தேடு
+Name[te]=గూగుల్ బొమ్మల అన్వెషణ
+Name[tg]=Ҷусуҷӯи тасвири Google
+Name[th]=ค้นหาภาพด้วยกูเกิ้ล
+Name[tr]=Google Resim Arayıcı
+Name[tt]=Google aşa Sürät Ezläw
+Name[uk]=Пошук зображень на Google
+Name[uz]=Google - Rasm qidirish
+Name[uz@cyrillic]=Google - Расм қидириш
+Name[ven]=U setsha nga Tshivhoni tsha Google
+Name[vi]=Tìm kiếm Hình ảnh Google
+Name[wa]=Cweraedje d' imådjes avou Google
+Name[xh]=Uphendlo Lomfanekiso we Google
+Name[zh_CN]=Google 图像搜索
+Name[zh_TW]=Google 圖片搜尋
+Name[zu]=Ukusesha isithombe kwe-Google
+ServiceTypes=SearchProvider
+Keys=ggi,images
+Query=http://images.google.com/images?q=\\{@}
+Query[en_GB]=http://images.google.co.uk/images?q=\\{@}
+Query[fr]=http://images.google.fr/images?q=\\{@}
+Query[he]=http://images.google.co.il/images?q=\\{@}
+Query[nb]=http://images.google.no/images?hl=nn&q=\\{@}
+Query[nl]=http://images.google.nl/images?q=\\{@}
+Query[nn]=http://images.google.com/images?hl=nn&q=\\{@}
+Query[pt]=http://images.google.pt/images?q=\\{@}
+Query[ru]=http://images.google.com/images?q=\\{@}&hl=ru&ie=UTF-8&oe=UTF-8
+Query[wa]=http://images.google.be/images?q=\\{@}
+Query[zh_TW]=http://images.google.com.tw/images?q=\\{@}&hl=zh-TW
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_lucky.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_lucky.desktop
new file mode 100644
index 000000000..f72e175d6
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_lucky.desktop
@@ -0,0 +1,94 @@
+[Desktop Entry]
+Type=Service
+Name=Google (I'm Feeling Lucky)
+Name[af]=Google (Vat 'n kaans)
+Name[ar]=Google (ضربة حظ)
+Name[az]=Google (Eləbil Bəxtim Gətirəcək)
+Name[be]=Google (Мне пашанцуе)
+Name[bg]=Google (I"m Feeling Lucky)
+Name[bn]=গুগল্ (ভাগ্যবান মনে করছি)
+Name[bs]=Google (Osjećam se sretno)
+Name[ca]=Google (Avui tinc sort!)
+Name[cs]=Google (Zkusím štěstí)
+Name[csb]=Google - "Szczestlëwé trafienié"
+Name[cy]=Google(Dwi'n Teimlo'n Lwcus)
+Name[da]=Google (Jeg føler mig heldig)
+Name[de]=Google ("Auf gut Glück!")
+Name[el]=Google (Αισθάνομαι τυχερός)
+Name[eo]=Google (je bonŝanco)
+Name[es]=Google (Me siento afortunado)
+Name[et]=Google (Ehk veab)
+Name[eu]=Google (Zorte onean nago)
+Name[fa]=گوگل )یا شانس و یا اقبال(
+Name[fi]=Google (Kokeile onneasi)
+Name[fo]=Google (ein heppin dagur)
+Name[fr]=Google (J'ai de la chance)
+Name[fy]=Google (Ik doch in gok)
+Name[ga]=Google (Tá an t-ádh orm inniu)
+Name[gl]=Google (Sinto-me Afortunado)
+Name[he]=גוגל (יותר מזל משכל)
+Name[hi]=गूगल (आज मेरी क़िस्मत चमक़ी है)
+Name[hr]=Google (osjećam se sretnim)
+Name[is]=Google (Ég er heppin(n) í dag)
+Name[it]=Google (Mi sento fortunato)
+Name[ka]=Google (გამიმართლა)
+Name[kk]=Google (Сәтті сынап көрелік)
+Name[km]=Google (ខ្ញុំ​មាន​អារម្មណ៍​ថា​សំណាង)
+Name[ko]=Google (운 좋은 예감)
+Name[lt]=Google (Man sekasi!)
+Name[lv]=Google (Es jūtos laimīgs)
+Name[mk]=Google Од прва рака
+Name[mn]=Гооглэ ("Азтай байг!")
+Name[ms]=Google (Saya Rasa Bertuah)
+Name[mt]=Google (inħossni xxurtjat)
+Name[nb]=Google (prøv lykken)
+Name[nds]=Google op goot Glück
+Name[ne]=गुगल (मैले भाग्यमानी अनुभव गर्दैछु)
+Name[nl]=Google (Ik doe een gok)
+Name[nn]=Google (Eg prøver lykka)
+Name[nso]=Google (Ke Ikwa Mahlatse)
+Name[pa]=Google (ਮੈਂ ਖੁਸ਼ਨਸੀਬ ਹਾਂ)
+Name[pl]=Google - "Szczęśliwy traf"
+Name[pt]=Google (Sinto-me Com Sorte)
+Name[pt_BR]=Google (Estou com sorte)
+Name[ro]=Google (Mă simt norocos)
+Name[ru]=Google (Мне повезёт!)
+Name[rw]=Google (Ndumva Nezerewe)
+Name[se]=Google (Geahččalan lihkku)
+Name[sk]=Google (Cítim sa štastne)
+Name[sl]=Google (Počutim se srečnega)
+Name[sr]=Google (Добијам из прве)
+Name[sr@Latn]=Google (Dobijam iz prve)
+Name[ss]=Google (Ngitiva nginenhlanhla)
+Name[sv]=Google (Jag har tur)
+Name[ta]=கூகுல் (நான் அதிர்ஷ்டசாலியாக உணர்கிறேன்)
+Name[te]=గూగుల్ (నెరుగా వెబ్ లొ ప్రవేశించు)
+Name[tg]=Google (Бо бахт ва бо иқбол)
+Name[th]=Google (ดีใจจัง ค้นแล้วเจอเลย)
+Name[tr]=Google
+Name[tt]=Google (Yaqşı Sizämen!)
+Name[uk]=Google (Я - везунчик)
+Name[uz]=Google (Omadim borga oʻxshaydi)
+Name[uz@cyrillic]=Google (Омадим борга ўхшайди)
+Name[ven]=Google (Ndi pfa ndina Mashudu)
+Name[vi]=Google (Xem một trang)
+Name[wa]=Cweraedje d' imådjes avou Google (Dji tchai roed dsu)
+Name[zh_CN]=Google (手气不错)
+Name[zh_TW]=Google (好手氣)
+Name[zu]=Google (Ngizizwa Ngisenhlanhleni)
+ServiceTypes=SearchProvider
+Keys=ggl,gglucky
+Query=http://www.google.com/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[csb]=http://www.google.pl/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[en_GB]=http://www.google.co.uk/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[fi]=http://www.google.fi/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[fr]=http://www.google.fr/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[he]=http://www.google.co.il/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[it]=http://www.google.it/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[nb]=http://www.google.no/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[nl]=http://www.google.nl/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[pl]=http://www.google.pl/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[pt]=http://www.google.pt/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[wa]=http://www.google.be/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8
+Query[zh_TW]=http://www.google.com.tw/search?q=\\{@}&btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&hl=zh-TW
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_movie.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_movie.desktop
new file mode 100644
index 000000000..47d53118f
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_movie.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Type=Service
+Name=Google Movies
+Name[af]=Google Films
+Name[ar]=أفلام Google
+Name[be]=Фільмы Google
+Name[bn]=গুগল্ মুভিস্
+Name[br]=Filmoù Google
+Name[bs]=Google filmovi
+Name[ca]=Pel·lícules Google
+Name[cs]=Google filmy
+Name[csb]=Google - filmë
+Name[da]=Google film
+Name[de]=Google Filme
+Name[el]=Google ταινίες
+Name[eo]=Google Filmoj
+Name[es]=Películas de Google
+Name[eu]=Google pelikulak
+Name[fa]=فیلمهای Google
+Name[fi]=Googlen elokuvat
+Name[fr]=Google Vidéos
+Name[fy]=Google Films
+Name[ga]=Scannáin Google
+Name[gl]=Películas de Google
+Name[he]=הסרטים של גוגל
+Name[hr]=Google filmovi
+Name[is]=Google kvikmyndir
+Name[it]=Google filmati
+Name[ka]=Google ფილმები
+Name[kk]=Google фильмдер
+Name[km]=កុនតាម​រយៈ Google
+Name[ko]=Google 영화
+Name[lt]=Google filmai
+Name[mk]=Google - филмови
+Name[ms]=Wayang Google
+Name[nb]=Google, filmer
+Name[nds]=Google Filmen
+Name[ne]=गुगल चलचित्र
+Name[nn]=Google filmar
+Name[pa]=Google ਫਿਲਮਾਂ
+Name[pl]=Google - filmy
+Name[pt]=Filmes do Google
+Name[ro]=Filme Google
+Name[ru]=Видео Google
+Name[rw]=Filimi za Google
+Name[se]=Google filmmat
+Name[sk]=Google filmy
+Name[sr]=Google филмови
+Name[sr@Latn]=Google filmovi
+Name[sv]=Google filmer
+Name[ta]=கூகுல் படங்கள்
+Name[te]=గూగుల్ చలనచిత్రాలు
+Name[tg]=Филмҳои Google
+Name[th]=ค้นหาภาพยนตร์ด้วยกูเกิ้ล
+Name[tr]=Google Filmleri
+Name[tt]=Google Tasmaları
+Name[uk]=Фільми на Google
+Name[uz]=Google - Kino
+Name[uz@cyrillic]=Google - Кино
+Name[vi]=Tìm phim ảnh qua Google
+Name[zh_TW]=Google 電影
+ServiceTypes=SearchProvider
+Keys=ggmovie
+Query=http://www.google.com/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[csb]=http://www.google.pl/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[en_GB]=http://www.google.co.uk/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[he]=http://www.google.co.il/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[ja]=http://www.google.com/search?q=movie:\\{@}&ie=UTF-8&oe=UTF-8
+Query[ko]=http://www.google.com/search?q=movie:\\{@}&ie=UTF-8&oe=UTF-8
+Query[nb]=http://www.google.no/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[ne]=http://www.google.com/search?q=movie:\{@}ie=UTF-8&oe=UTF-8
+Query[nn]=http://www.google.no/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[pl]=http://www.google.pl/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8
+Query[tg]=http://www.google.com/search?q=филми:\\{@}&ie=UTF-8&oe=UTF-8
+Query[zh_TW]=http://www.google.com.tw/search?q=movie:\{@}&ie=UTF-8&oe=UTF-8&hl=zh-TW
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_news.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_news.desktop
new file mode 100644
index 000000000..f8521c3a3
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/google_news.desktop
@@ -0,0 +1,85 @@
+[Desktop Entry]
+Type=Service
+Name=Google News
+Name[af]=Google Nuus
+Name[ar]=أخبار Google
+Name[az]=Google Xəbərlər
+Name[be]=Навіны Google
+Name[bn]=গুগল্ সংবাদ
+Name[br]=Keleier Google
+Name[bs]=Google vijesti
+Name[ca]=Notícies de Google
+Name[csb]=Google - nowinë
+Name[cy]=Newyddion Google
+Name[da]=Google nyheder
+Name[el]=Google νέα
+Name[eo]=Google Novaĵoj
+Name[es]=Noticias de Google
+Name[fa]=اخبار گوگل
+Name[fi]=Googlen uutiset
+Name[fr]=Google Informations
+Name[fy]=Google-nijs
+Name[ga]=Nuacht Google
+Name[gl]=Novas de Google
+Name[he]=חדשות גוגל
+Name[hi]=गूगल समाचार
+Name[hr]=Google novosti
+Name[hu]=Google hírek
+Name[is]=Google fréttir
+Name[it]=Google notizie
+Name[ja]=Google ニュース
+Name[ka]=Google სიახლეები
+Name[kk]=Google жаңалықтар
+Name[km]=ព័ត៌មាន​តាម​រយៈ Google
+Name[ko]=Google 뉴스
+Name[lt]=Google naujienos
+Name[lv]=Google Ziņas
+Name[mk]=Google Вести
+Name[mn]=Гооглэ мэдээ
+Name[ms]=Berita Google
+Name[mt]=Aħbarijiet Google
+Name[nb]=Google nyheter
+Name[nds]=Google Narichten
+Name[ne]=गुगल समाचार
+Name[nl]=Google-nieuws
+Name[nn]=Google nyhende
+Name[pa]=Google ਖ਼ਬਰਾਂ
+Name[pl]=Google - wiadomości
+Name[pt]=Notícias Google
+Name[pt_BR]=Notícias do Google
+Name[ro]=Știri Google
+Name[ru]=Новости Google
+Name[rw]=Amakuru za Google
+Name[se]=Google ođđasat
+Name[sk]=Google správy
+Name[sr]=Google новости
+Name[sr@Latn]=Google novosti
+Name[sv]=Google diskussionsgrupper
+Name[ta]=கூகுல் செய்திகள்
+Name[te]=గూగుల్ వార్తలు
+Name[tg]=Ахбори Google
+Name[th]=ข่าวจากกูเกิ้ล
+Name[tr]=Google Haberleri
+Name[tt]=Google Yañalıqları
+Name[uk]=Новини Google
+Name[uz]=Google - Yangiliklar
+Name[uz@cyrillic]=Google - Янгиликлар
+Name[vi]=Tin tức Google
+Name[wa]=Noveles Google
+Name[zh_CN]=Google 新闻
+Name[zh_TW]=Google 新聞
+ServiceTypes=SearchProvider
+Keys=ggn,googlenews
+Query=http://news.google.com/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[en_GB]=http://news.google.co.uk/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[fi]=http://news.google.fi/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[fr]=http://news.google.fr/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[he]=http://news.google.co.il/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[it]=http://news.google.it/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[nb]=http://news.google.no/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[ne]=http://news.google.com/news?q=\\{@}ie=UTF-8&oe=UTF-8
+Query[nl]=http://news.google.nl/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[pt]=http://news.google.pt/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[wa]=http://news.google.be/news?q=\\{@}&ie=UTF-8&oe=UTF-8
+Query[zh_TW]=http://news.google.com.tw/news?q=\\{@}&ie=UTF-8&oe=UTF-8&hl=zh-TW
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/gracenote.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/gracenote.desktop
new file mode 100644
index 000000000..04a6655c8
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/gracenote.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Type=Service
+Name=Gracenote
+Name[bn]=গ্রেস-নোট
+Name[eo]=Ornamaĵo
+Name[hi]=ग्रेसनोट
+Name[ne]=ग्रेसनोट
+Name[pa]=ਗਰੇਸਨੋਟ
+Name[rw]=AkandikoImpuwe
+Name[ta]=க்ரேஸ்நோட்
+Name[te]=గ్రెస్ నోట్
+Name[th]=Gracenote ค้นหาดนตรี, วิดิโอ
+Name[vi]=Tra Gracenote
+ServiceTypes=SearchProvider
+Keys=gn,gracenote
+Query=http://www.gracenote.com/music/search-adv.html?q=\\{@}
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/grec.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/grec.desktop
new file mode 100644
index 000000000..295637533
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/grec.desktop
@@ -0,0 +1,65 @@
+[Desktop Entry]
+Charset=ISO-8859-15
+Hidden=false
+Keys=grec
+Name=Great Dictionary of the Catalan Language (GRan Enciclopèdia Catalana)
+Name[af]=Groot woordeboek van die Catalan Taal
+Name[be]=Вялікі слоўнік каталонскай мовы (GRan Enciclopèdia Catalana)
+Name[bn]=কাটালান ভাষার অভিধান (GRan Enciclopèdia Catalana)
+Name[bs]=Veliki rječnik katalonskog jezika (GRan Enciclopèdia Catalana)
+Name[ca]=Gran diccionari de la Llengua Catalana (Grup Enciclopèdia Catalana)
+Name[cs]=Velký katalánský slovník (GRan Enciclopèdia Catalana)
+Name[csb]=Wiôldżi słowôrz katalońsczégò jãzëka (GRan Enciclopèdia Catalana)
+Name[da]=Storartet ordbog for det katalanske sprog (GRan Enciclopèdia Catalana)
+Name[de]=Großes Wörterbuch der Katalanischen Sprache (GRan Enciclopèdia Catalana)
+Name[el]=Μεγάλο Λεξικό της Καταλανικής Γλώσσας (GRan Enciclopèdia Catalana)
+Name[eo]=Granda Vortaro de la Kataluna lingvo (GRan Enciclopèdia Catalana)
+Name[es]=Gran enciclopedia catalana
+Name[et]=Suur katalaani sõnaraamat (GRan Enciclopèdia Catalana)
+Name[eu]=Katalaniera hiztegia (GRan Enciclopèdia Catalana)
+Name[fa]=واژه‌نامۀ بزرگ زبان کاتالان (GRan Enciclopèdia Catalana)
+Name[fi]=Catalanian suuri sanakirja (GRan Enciclopèdia Catalana)
+Name[fr]=Grand dictionnaire du langage catalan (GRan Enciclopèdia Catalana)
+Name[ga]=OllFhoclóir Catalóinise (GRan Enciclopèdia Catalana)
+Name[gl]=Grande Enciclopèdia Catalana
+Name[he]=המילון הגדול של השפה הקטלנית (GRan Enciclopèdia Catalana)
+Name[hr]=Veliki rječnik katalonskog jezika (GRan Enciclopèdia Catalana)
+Name[hu]=Katalán nagyszótár (GRan Enciclopèdia Catalana)
+Name[is]=Stóra orðabók katalónska tungumálsins (GRan Enciclopèdia Catalana)
+Name[it]=Grande dizionario della lingua catalana (GRan Enciclopèdia Catalana)
+Name[ja]=カタロニア語大辞典 (GRan Enciclopèdia Catalana)
+Name[kk]=Каталан тілдің үлкен сөздігі (GRan Enciclopèdia Catalana)
+Name[km]=វចនានុក្រម​ភាសា​កាតាឡាន (GRan Enciclopèdia Catalana)
+Name[ko]=카탈루냐어 대사전 (GRan Enciclopèdia Catalana)
+Name[lt]=Puikus katalonų kalbos žodynas (GRan Enciclopèdia Catalana)
+Name[mk]=Голем речник на каталонскиот јазик (GRan Enciclopèdia Catalana)
+Name[ms]=Kamus Besar Bahasa Catalan (GRan Enciclopèdia Catalana)
+Name[nb]=Den store, katalanske ordboka (GRan Enciclopèdia Catalana)
+Name[nds]=Groot Wöörbook vun de Katalaansche Spraak (GRan Enciclopèdia Catalana)
+Name[ne]=क्याटालान भाषाको ठूलो शब्दकोश (GRan इनसाइक्लोपिडीया कातालान)
+Name[nl]=Catalaanse Encyclopedie
+Name[nn]=Den store, katalanske ordboka (GRan Enciclopèdia Catalana)
+Name[pa]=ਕਾਟਾਲਾਨ ਭਾਸ਼ਾ ਲਈ ਮਹਾਨ ਕੋਸ਼ (GRan ਵਿਸ਼ਵਕੋਸ਼ ਕਾਟਾਲਾਨਾ)
+Name[pl]=Wielki słownik języka katalońskiego (GRan Enciclopèdia Catalana)
+Name[pt]=Grande Dicionário da Língua Catalã (GRan Enciclopèdia Catalana)
+Name[pt_BR]=Dicionário no Idioma Catalão (GRan Enciclopèdia Catalana)
+Name[ru]=Большой словарь каталонского языка (GRan Enciclopèdia Catalana)
+Name[rw]=Inkoranyamagambo Nini y'Ururimi rwa Katalani (GRan Enciclopèdia Catalana)
+Name[se]=Katalangiela stuorra sátnegirji (GRan Enciclopèdia Catalana)
+Name[sk]=Veľký slovník katalánskeho jazyka (GRan Enciclopèdia Catalana)
+Name[sl]=Veliki slovar katalonščine (GRan Enciclopèdia Catalana)
+Name[sr]=Велики речник каталонског језика (Gran Enciclopèdia Catalana)
+Name[sr@Latn]=Veliki rečnik katalonskog jezika (Gran Enciclopèdia Catalana)
+Name[sv]=Stor ordbok för katalanska språket (Gran Enciclopèdia Catalana)
+Name[ta]=கேடலன் மொழியின் அகராதி (GRan Enciclopèdia Catalana)
+Name[tg]=Ташкилдиҳии луғат барои забони Catalan (GRan Enciclopèdia Catalana)
+Name[th]=พจนานุกรมที่ยิ่งใหญ่ของภาษาคาตะลาน(GRan Enciclopรจdia Catalana)
+Name[tr]=Katalanca Büyük Sözlük (GRan Enciclopèdia Catalana)
+Name[tt]=Katalan Teleneñ Olı Süzlege
+Name[uk]=Великий словник каталонської мови (GRan Enciclopèdia Catalana)
+Name[vi]=Tra Từ điển Lớn của tiếng Catalan (GRan Enciclopèdia Catalana)
+Name[wa]=Grand motî do catalan lingaedje (GRan Enciclopèdia Catalana)
+Name[zh_TW]=很棒的加泰隆尼亞語文字典 (GRan Enciclopèdia Catalana)
+Query=http://www.grec.net/cgibin/lexicx.pgm?GECART=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/hotbot.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/hotbot.desktop
new file mode 100644
index 000000000..c555088ac
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/hotbot.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Type=Service
+Name=Hotbot
+Name[bn]=হটবট
+Name[csb]=Hotbot - szëkôrz starnów WWW
+Name[hi]=हॉटबॉट
+Name[ne]=हटबोट
+Name[pa]=ਹੋਟਬੋਟ
+Name[pl]=Hotbot - wyszukiwarka stron WWW
+Name[ta]=ஹாட்பாட்
+Name[te]=హాట్ బాట్
+Name[ven]=Bot yau fhisa
+Name[vi]=Tra Hotbot
+ServiceTypes=SearchProvider
+Keys=hb,hotbot
+Query=http://hotbot.lycos.com/?MT=\\{@}&SM=MC&DV=0&LG=any&DC=10&DE=2
+Query[en_GB]=http://search.hotbot.co.uk/cgi-bin/pursuit?query=\\{@}&cat=hb_loc&enc=utf-8&SITE=uk&command=
+Query[ne]=http://hotbot.lycos.com/?MT=\\{@}SM=MC&DV=0&LG=any&DC=10&DE=2
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop
new file mode 100644
index 000000000..54627f6c6
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Service
+Name=HyperDictionary.com
+Name[csb]=HyperDictionary.com - słowôrz
+Name[hi]=हायपर-डिक्शनरी.कॉम
+Name[hu]=HyperDirectory.com
+Name[pl]=HyperDictionary.com - słownik
+Name[sv]=Hyperdictionary.com
+Name[ta]=திறந்த அடைவு
+ServiceTypes=SearchProvider
+Keys=hd,hyperdict
+Query=http://www.hyperdictionary.com/search.aspx?define=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop
new file mode 100644
index 000000000..aa66572c4
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop
@@ -0,0 +1,65 @@
+[Desktop Entry]
+Type=Service
+Name=HyperDictionary.com Thesaurus
+Name[ar]=مرادفات HyperDictionary.com
+Name[az]=HyperDictionary.com Tezaurus
+Name[be]=Тэзаўрус HyperDictionary.com
+Name[bn]=HyperDictionary.com থেসরাস (সমার্থক ও বিপরীত শব্দ)
+Name[br]=Tezorus HyperDictionary.com
+Name[bs]=HyperDictionary.com rječnik
+Name[cs]=Tezaurus HyperDictionary.com
+Name[csb]=HyperDictionary.com - słowôrz blëskòznacznëch słów (thesarus)
+Name[cy]=Thesawrws HyperDictionary.com
+Name[de]=HyperDictionary.com: Thesaurus
+Name[el]=Θησαυρός λέξεων HyperDictionary.com
+Name[eo]=HyperDictionary.com-tezaŭro
+Name[es]=Tesaurus de HyperDictionary.com
+Name[et]=HyperDictionary.com tesaurus
+Name[eu]=HyperDictionary.com Thesaurus-a
+Name[fa]=فرهنگ جامع HyperDictionary.com
+Name[fi]=HyperDictionary.com-sanakirja
+Name[fr]=Thésaurus HyperDictionary.com
+Name[ga]=Teasáras HyperDictionary.com
+Name[he]=HyperDictionary.com - מילים נרדפות
+Name[hi]=हायपर-डिक्शनरी.कॉम समांतर शब्दकोश
+Name[hr]=HyperDictionary.com rječnik sinonima
+Name[hu]=HyperDictionary.com szinonimaszótár
+Name[is]=HyperDictionary.com samheitaorðabók
+Name[it]=Sinonimi HyperDictionary.com
+Name[ja]=HyperDictionary.com シソーラス
+Name[ka]=Тезаурус HyperDictionary.com
+Name[kk]=HyperDictionary.com тезаурус
+Name[km]=កម្រង​វេវចនសព្ទ HyperDictionary.com
+Name[ko]=HyperDictionary.com 시소러스
+Name[lt]=Merriam-Webster sinonimų žodynas
+Name[lv]=HyperDictionary.com Tēzaurs
+Name[mk]=HyperDictionary.com Енциклопедија
+Name[mt]=Teżawru HyperDictionary.com
+Name[nb]=HyperDictionary.com, synonymordbok
+Name[nds]=HyperDictionary.com-Synonümwöörbook
+Name[pa]=HyperDictionary.com ਥੀਸਾਰਸ ਕੋਸ਼
+Name[pl]=HyperDictionary.com - słownik wyrazów bliskoznacznych
+Name[pt]=Gramática do HyperDictionary.com
+Name[ro]=Dicționarul HyperDictionary.com
+Name[ru]=Тезаурус HyperDictionary.com
+Name[rw]=Impuzansobanuro HyperDictionary.com
+Name[sk]=HyperDictionary.com - slovník synoným
+Name[sl]=Tezaver HyperDictionary.com
+Name[sr]=Речник синонима на HyperDictionary.com
+Name[sr@Latn]=Rečnik sinonima na HyperDictionary.com
+Name[sv]=HyperDictionary.com synonymlexikon
+Name[ta]=HyperDictionary.com சொற்களஞ்சியம்
+Name[th]=HyperDictionary.com อรรถาพิธาน
+Name[tr]=HyperDictionary.com Terimler
+Name[tt]=HyperDictionary.com Süznämäse
+Name[uk]=Словник синонімів HyperDictionary.com
+Name[uz]=HyperDictionary.com lugʻati
+Name[uz@cyrillic]=HyperDictionary.com луғати
+Name[vi]=Từ điển đồng nghĩa HyperDictionary.com
+Name[wa]=HyperDictionary.com
+Name[zh_CN]=HyperDictionary.com 宝藏
+Name[zh_TW]=HyperDictionary.com 辭典
+ServiceTypes=SearchProvider
+Keys=hdt,hd-ths,hd-thesaurus
+Query=http://www.hyperdictionary.com/search.aspx?Dict=T&define=\\{@}
+Query[ne]=http://www.hyperdictionary.com/search.aspx?Dict=Tdefine=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/imdb.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/imdb.desktop
new file mode 100644
index 000000000..c2dc64cd3
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/imdb.desktop
@@ -0,0 +1,74 @@
+[Desktop Entry]
+Type=Service
+Name=Internet Movie Database
+Name[af]=Internet Film Databasis
+Name[ar]=قاعدة بيانات الأفلام على الإنترنت
+Name[az]=İnternet Film Databeyzi
+Name[be]=База звестак аб фільмах
+Name[bn]=ইন্টারনেট চলচ্চিত্র ডেটাবেস
+Name[br]=Stlennvon filmoù Internet
+Name[bs]=Internet baza filmova
+Name[ca]=Base de dades de pel·lícules a Internet
+Name[cs]=Internetová databáze filmů
+Name[csb]=Internetowô baza filmów (IMDB)
+Name[cy]=Cronfa Ffilmiau y Rhyngrwyd
+Name[da]=Internetfilm-database
+Name[de]=Internet-Filmdatenbank
+Name[el]=Βάση δεδομένων ταινιών στο διαδίκτυο
+Name[eo]=Reta Filmdatumbazo
+Name[es]=Base de datos de internet de películas
+Name[et]=Interneti filmide andmebaas
+Name[eu]=Interneteko filmeen datu-basea
+Name[fa]=دادگان فیلم اینترنت
+Name[fy]=Ynternetfilm-databank
+Name[gl]=Base de Datos de Filmes de Internet
+Name[he]=מסד נתונים מקוון לסרטים
+Name[hi]=इंटरनेट चलचित्र डाटाबेस
+Name[hr]=Internetska baza podataka filmova
+Name[hu]=Internetes filmadatbázis (IMDb)
+Name[is]=Internet kvikmyndagagnagrunnurinn
+Name[it]=Database internet dei film
+Name[ja]=インターネット映画データベース
+Name[kk]=Internet фильмдер қоры
+Name[km]=មូលដ្ឋាន​ទិន្នន័យ​ភាពយន្ត​តាម​អ៊ិនធឺណិត
+Name[ko]=인터넷 영화 데이터베이스
+Name[lo]=ເດມອນ Write ຂອງ KDE
+Name[lt]=Interneto kinofilmų duomenų bazė
+Name[lv]=Interneta Filmu Datubāze
+Name[mk]=Интернет база на филмови
+Name[mn]=Интернэт кино өгөгдлийн бааз
+Name[ms]=Pangkalan Data Wayang Internet
+Name[nb]=Internett filmdatabase
+Name[nds]=Internet-Filmdatenbank
+Name[ne]=इन्टरनेट चलचित्र डेटावेस
+Name[nl]=Internetfilm-database
+Name[pa]=ਇੰਟਰਨੈੱਟ ਫਿਲਮ ਡਾਟਾਬੇਸ
+Name[pl]=Internetowa baza filmów (IMDB)
+Name[pt_BR]=Base de dados de filmes na Internet
+Name[ro]=Bază de date Internet de filme
+Name[ru]=Интернет-база кинофильмов (imdb)
+Name[rw]=Ububikoshingiro bwa Filimi Interineti
+Name[sk]=Internetová databáza filmov
+Name[sl]=Internetna zbirka filmov
+Name[sr]=База података о филмовима на Интернету
+Name[sr@Latn]=Baza podataka o filmovima na Internetu
+Name[sv]=Internet filmdatabas
+Name[ta]=வலைதள திரைப்பட தகவல்தளம்
+Name[te]=ఇంటర్నెట్ చలన చిత్ర డాటాబేస్
+Name[tg]=Базаи иттилооти филм дар интернет
+Name[th]=ฐานข้อมูลภาพยนตร์
+Name[tr]=İnternet Film Veritabanı
+Name[tt]=Päräwezdäge Tasmalar Biremlege
+Name[uk]=База даних кінофільмів в Інтернет
+Name[uz]=Internetdagi kino maʼlumot bazasi
+Name[uz@cyrillic]=Интернетдаги кино маълумот базаси
+Name[vi]=Cơ sở dữ liệu Phim ảnh trên Mạng
+Name[wa]=Båze di dnêyes di films sol Daegntoele
+Name[zh_CN]=互联网电影数据库
+Name[zh_TW]=Internet 電影資料庫
+ServiceTypes=SearchProvider
+Keys=imdb
+Query=http://imdb.com/Find?\\{@}
+Query[en_GB]=http://imdb.co.uk/Find?\\{@}
+Query[it]=http://italian.imdb.com/Find?\\{@}
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/it2en.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/it2en.desktop
new file mode 100644
index 000000000..cc4b867f8
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/it2en.desktop
@@ -0,0 +1,75 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=it2en
+Name=WordReference.com Translation: Italian to English
+Name[af]=WordReference.com Vertaling: Italiaans na Engels
+Name[ar]=ترجمة WordReference.com: الإيطالية إلى الإنجليزية
+Name[az]=WordReference.com Tərcümə: İtalyancadan İngiliscəyə
+Name[be]=WordReference.com Пераклад: з італійскай на англійскую
+Name[bn]=WordReference.com অনুবাদ: ইতালীয় থেকে ইংরাজি
+Name[bs]=WordReference.com prijevod: italijanski u engleski
+Name[ca]=Traducció WordReference.com: Italià - Anglès
+Name[cs]=Překlad WordReference.com: z italštiny do angličtiny
+Name[csb]=WordReference.com: italsczi -> anielsczi
+Name[cy]=Cyfieithiad WordReference.com: Eidaleg i Saesneg
+Name[da]=WordReference.com oversættelse: Italiensk til engelsk
+Name[de]=WordReference.com-Übersetzung: Italienisch/Englisch
+Name[el]=WordReference.com Μετάφραση: Ιταλικά σε Αγγλικά
+Name[eo]=WordReference.com Traduko: itala al angla
+Name[es]=WordReference.com Traducción: italiano a inglés
+Name[et]=WordReference.com tõlkimine: itaalia->inglise
+Name[eu]=WordReference.com Itzulpena: italieratik ingelesera
+Name[fa]=ترجمۀ WordReference.com: ایتالیایی به انگلیسی
+Name[fi]=WordReference.com-käännös: italiasta englanniksi
+Name[fr]=Traduction sur WordReference.com : Italien en Anglais
+Name[fy]=WordReference.com-oersetting: Italiaansk nei Ingelsk
+Name[ga]=Aistriúchán WordReference.com: Iodáilis go Béarla
+Name[gl]=Tradución WordReference.com: Italiano a Inglés
+Name[he]=תרגום WordReference.com: איטלקי־אנגלי
+Name[hi]=WordReference.com अनुवादः इतालवी से अंग्रेजी
+Name[hr]=WordReference.com Prijevod: talijanski na engleski
+Name[hu]=WordReference.com fordítás: olaszról angolra
+Name[is]=WordReference.com þýðing: Ítölsk/ensk
+Name[it]=Traduzione WordReference.com: dall'italiano all'inglese
+Name[ja]=WordReference.com イタリア語-英語翻訳
+Name[kk]=WordReference.com итальян тілінен ағылшынға аудару
+Name[km]=WordReference.com ៖ បកប្រែ​ពី​ភាសា​អ៊ីតាលី​ទៅ​អង់គ្លេស
+Name[ko]=WordReference.com 번역: 이탈리아어에서 영어로
+Name[lt]=WordReference.com vertimas: iš italų į anglų
+Name[lv]=WordReference.com Tulkošana: no Itāļu uz Angļu
+Name[mk]=WordReference.com превод: од италијански на англиски
+Name[mt]=Traduzzjoni WordReference.com: Taljan għall-Ingliż
+Name[nb]=WordReference.com – oversettelse fra italiensk til engelsk
+Name[nds]=WordReference.com Översetten: Italieensch na Engelsch
+Name[ne]=WordReference.com Translation: इटालियनलाई अङ्ग्रेजीमा
+Name[nl]=WordReference.com-vertaling: Italiaans naar Engels
+Name[nn]=WordReference.com – omsetjing: italiensk til engelsk
+Name[pa]=WordReference.com ਅਨੁਵਾਦ:ਇਤਾਲਵੀ ਤੋਂ ਅੰਗਰੇਜ਼ੀ
+Name[pl]=WordReference.com: włoski -> angielski
+Name[pt]=Traduções do WordReference.com: Italiano para Inglês
+Name[pt_BR]=WordReference.com - Tradução: Italiano para Inglês
+Name[ro]=Traducere WordReference.com: italiană la engleză
+Name[ru]=Переводчик WordReference.com: итальянско-английский
+Name[rw]=WordReference.com Ivunura: Igitaliyani mu Cyongereza
+Name[se]=WordReference.com – jorgaleapmi: italialašgielas eŋgelasgillii
+Name[sk]=WordReference.com preklad z talianštiny do angličtiny
+Name[sl]=Prevod WordReference.com: italijanščina v angleščino
+Name[sr]=Превод на WordReference.com: са италијанског на енглески
+Name[sr@Latn]=Prevod na WordReference.com: sa italijanskog na engleski
+Name[sv]=Wordreference.com översättning: italienska till engelska
+Name[ta]=WordReference.com மொழிபெயர்ப்பு: இத்தாலிய மொழியில் இருந்து ஆங்கிலத்துக்கு
+Name[tg]=WordReference.com Тарҷума: аз Итолиёгӣ ба Англисӣ
+Name[th]=WordReference.com แปลภาษาอิตาเลียนเป็นอังกฤษ
+Name[tr]=WordReference.com Çevirisi: İtalyancadan İngilizceye
+Name[tt]=WordReference.com Tärcemäse: İtalça -› İnglizçä
+Name[uk]=WordReference.com: переклад з італійської на англійську
+Name[uz]=WordReference.com tarjima: Italyanchadan Inglizchaga
+Name[uz@cyrillic]=WordReference.com таржима: Италянчадан Инглизчага
+Name[vi]=WordReference.com Dịch: Tiếng Ý sang tiếng Anh
+Name[wa]=WordReference.com ratournaedje di l' itålyin viè l' inglès
+Name[zh_CN]=WordReference.com 翻译:意大利语译英语
+Name[zh_TW]=WordReference.com 翻譯: 義大利文至英文
+Query=http://www.wordreference.com/it/en/translation.asp?iten=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/jeeves.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/jeeves.desktop
new file mode 100644
index 000000000..b1fc478fd
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/jeeves.desktop
@@ -0,0 +1,30 @@
+[Desktop Entry]
+Type=Service
+Name=Ask Jeeves
+Name[af]=Vra Jeeves
+Name[br]=Klask digant Jeeves
+Name[csb]=Ask Jeeves - spëtôj ò cos
+Name[de]=Frag Jeeves
+Name[eo]=Demandu Jeeves
+Name[fa]=پرسیدن Jeeves
+Name[fo]=Spyr Jeeves
+Name[he]=שאל את Jeeves
+Name[hi]=आस्क जीव्स
+Name[hr]=Pitajte Jeevesa
+Name[is]=Spyrja Jeeves
+Name[mk]=Прашајте го Jeeves
+Name[mn]=Frag Jeeves
+Name[nds]=Fraag Jeeves
+Name[ne]=आस्क जीभेज
+Name[nso]=Botsisa Jeeves
+Name[pl]=Ask Jeeves - zapytaj o coś
+Name[ss]=Buta Jeeves
+Name[ta]=ஜீவசை கேள்
+Name[te]=జీవ్స్ ను అడగండి
+Name[th]=ถามจีฟส์
+Name[ven]=Vhudzisani Jeeves
+Name[vi]=Hỏi Jeeves
+ServiceTypes=SearchProvider
+Keys=ask,jeeves
+Query=http://www.ask.com/main/askJeeves.asp?origin=0&qSource=4&site_name=Jeeves&metasearch=yes&ask=\\{@}
+Query[en_GB]=http://www.ask.co.uk/main/askJeeves.asp?origin=0&qSource=4&site_name=Jeeves&metasearch=yes&ask=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/katatudo.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/katatudo.desktop
new file mode 100644
index 000000000..ac220a515
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/katatudo.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Type=Service
+Name=KataTudo
+Name[bn]=কাটা-টুডো
+Name[eo]=Katatudo
+Name[eu]=Kata Tudo
+Name[hi]=केएटीए ट्यूडो
+Name[ne]=काता टुडो
+Name[ta]=காட்டா ட்யூடோ
+Name[te]=కటాటుడొ
+ServiceTypes=SearchProvider
+Keys=kt,katatudo
+Query=http://www.katatudo.com.br/busca/resultado.php?q=\\{@}&onde=&b=Buscar
+Query[ne]=http://www.katatudo.com.br/busca/resultado.php?q=\\{@}onde=&b=Buscar
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/kde.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/kde.desktop
new file mode 100644
index 000000000..f5a96f71e
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/kde.desktop
@@ -0,0 +1,80 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=kde
+Name=KDE API Documentation
+Name[af]=KDE API Dokumentasie
+Name[ar]=توثيق واجهة برمجة تطبيقات (API) كيدي
+Name[az]=KDE API Sənədləri
+Name[be]=Дакументацыя па KDE API
+Name[bn]=কে.ডি.ই. এ-পি-আই নির্দেশিকা
+Name[br]=Teuliadur API KDE
+Name[bs]=KDE API dokumentacija
+Name[ca]=Documentació de l'API de KDE
+Name[cs]=KDE API dokumentace
+Name[csb]=Dokùmentacëjô API KDE
+Name[cy]=Dogfenniaeth API KDE
+Name[da]=KDE API Dokumentation
+Name[de]=KDE-API-Dokumentation
+Name[el]=Τεκμηρίωση KDE API
+Name[eo]=KDE API Dokumentaro
+Name[es]=Documentación de la API de KDE
+Name[et]=KDE API dokumentatsioon
+Name[eu]=KDEren API dokumentazioa
+Name[fa]=مستندات KDE ِAPI
+Name[fi]=KDE APIn dokumentaatio
+Name[fr]=Documentation de l'API de KDE
+Name[fy]=KDE API Dokumintaasje
+Name[ga]=Doiciméadú API KDE
+Name[gl]=Documentación da API de KDE
+Name[he]=תיעוד ממשק תכנות יישומים ב־KDE
+Name[hi]=केडीई एपीआई दस्तावेज़ीकरण
+Name[hr]=KDE API dokumentacija
+Name[hu]=A KDE API dokumentációja
+Name[id]=Dokumentasi API KDE
+Name[is]=KDE forritunarviðmótsleiðbeiningar
+Name[it]=Documentazione della API di KDE
+Name[ja]=KDE API 文書
+Name[kk]=KDE API құжаттамасы
+Name[km]=ឯកសារ API របស់ KDE
+Name[ko]=KDE API 문서
+Name[lt]=KDE API dokumentacija
+Name[lv]=KDE API Dokumentācija
+Name[mk]=KDE API документација
+Name[mn]=KDE API баримтжуулалт
+Name[ms]=Dokumentasi API KDE
+Name[mt]=Dokumentazzjoni tal-API ta' KDE
+Name[nb]=KDE API-dokumentasjon
+Name[nds]=KDE-API-Dokmentatschoon
+Name[ne]=KDE API कागजात
+Name[nl]=KDE API Documentatie
+Name[nn]=KDE API-dokumentasjon
+Name[pa]=KDE API ਦਸਤਾਵੇਜ਼
+Name[pl]=Dokumentacja API KDE
+Name[pt]=Documentação da API do KDE
+Name[pt_BR]=Documentação da API do KDE
+Name[ro]=Documentația API KDE
+Name[ru]=Документация KDE API
+Name[rw]=Ikoreshanyandiko KDE API
+Name[se]=KDE API-dokumentašuvdna
+Name[sk]=KDE dokumentácia API
+Name[sl]=Dokumentacija KDE API
+Name[sr]=Документација API-ја KDE-а
+Name[sr@Latn]=Dokumentacija API-ja KDE-a
+Name[sv]=Dokumentation av KDE:s programmeringsgränssnitt
+Name[ta]=KDE API ஆவணமாக்கல்
+Name[tg]=Мустанадоти KDE API
+Name[th]=เอกสารอธิบาย API บน KDE
+Name[tr]=KDE API Belgeleri
+Name[tt]=KDE API Qullanması
+Name[uk]=Документація по API KDE
+Name[uz]=KDE API boʻyicha qoʻllanmalar
+Name[uz@cyrillic]=KDE API бўйича қўлланмалар
+Name[vi]=Tài liệu về API của KDE
+Name[wa]=Documintåcion di l' API di KDE
+Name[zh_CN]=KDE API 文档
+Name[zh_TW]=KDE API 文件
+Query=http://developer.kde.org/documentation/library/classmapper.php?class=\\{@}
+Query[bg]=http://developer.kde.org/documentation/library/classmapper.php?class=\
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop
new file mode 100644
index 000000000..6dd1ce121
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop
@@ -0,0 +1,32 @@
+[Desktop Entry]
+Type=Service
+Name=KDE WebSVN
+Name[bn]=কে.ডি.ই. ওয়েব-এস.ভি.এন
+Name[br]=WebSVN KDE
+Name[ca]=WebSVN de KDE
+Name[csb]=WebSVN dlô KDE
+Name[es]=WebSVN de KDE
+Name[fi]=KDE:n WebSVN
+Name[fr]=WebSVN de KDE
+Name[ga]=WebSVN KDE
+Name[gl]=WebCVS de KDE
+Name[it]=SVN web di KDE
+Name[nds]=KDE-WebSVN
+Name[ne]=KDE वेब एसभीएन
+Name[pl]=WebSVN dla KDE
+Name[pt]=WebSVN do KDE
+Name[pt_BR]=WebSVN do KDE
+Name[sr]=KDE-ов WebSVN
+Name[sr@Latn]=KDE-ov WebSVN
+Name[sv]=KDE-webbsvn
+Name[te]=కెడిఈ వెబె ఎస్ వి ఎన్
+Name[tg]=KDE ВэбSVN
+Name[th]=SVN บนเว็บของ KDE
+Name[vi]=Tra KDE WebSVN
+Name[wa]=WebSVN di KDE
+ServiceTypes=SearchProvider
+Keys=websvn,kdesvn,ksvn,kvs
+Query=http://websvn.kde.org/\\{@}
+Query[ja]=http://webcvs.kde.org/\\{@}
+Query[se]=http://webcvs.kde.org/\\{@}
+
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/leo.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/leo.desktop
new file mode 100644
index 000000000..87e961e5e
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/leo.desktop
@@ -0,0 +1,49 @@
+[Desktop Entry]
+Type=Service
+Name=LEO-Translate
+Name[af]=LEO-Vertaal
+Name[ar]=LEO-ترجم
+Name[bs]=LEO-Prevodilac
+Name[csb]=LEO - dwastarnowi anielskò-miemiecczi
+Name[cy]=LEO-Cyfieithu
+Name[de]=LEO-Übersetzung
+Name[eo]=LEO-Tradukilo
+Name[fa]=LEO - ترجمه کردن
+Name[fi]=LEO-käännös
+Name[fo]=LEO-Umset
+Name[fy]=LEO-oersetting (oersetting: Dûtsk-Ingelsk-Dûtsk)
+Name[ga]=Aistriúchán LEO
+Name[he]=LEO־תרגום
+Name[hi]=लिओ-अनुवाद
+Name[hr]=LEO-Prijevod
+Name[is]=LEO-þýðandi
+Name[km]=LEO-បកប្រែ
+Name[ko]=LEO-번역
+Name[lv]=LEO-Tulkot
+Name[mk]=LEO - превод
+Name[mn]=LEO-Орчуулга
+Name[ms]=LEO-Terjemah
+Name[nb]=LEO-oversetter
+Name[nds]=LEO-Översetten
+Name[ne]=LEO-अनुवाद
+Name[nl]=LEO-Translate (Vertaling Duits-Engels-Duits)
+Name[nso]=Thlathollo ya LEO
+Name[pa]=LEO-ਅਨੁਵਾਦ
+Name[pl]=LEO - dwustronny słownik angielsko-niemiecki
+Name[pt_BR]=LEO-Tradutor
+Name[rw]=LEO-Kuvunura
+Name[ss]=Humusha LEO
+Name[ta]=லியோ-மொழிபெயர்ப்பு
+Name[te]=లియొ-అనువాదం
+Name[tg]=LEO-Тарҷума
+Name[tt]=LEO-Tärcemä
+Name[uz]=LEO tarjima
+Name[uz@cyrillic]=LEO таржима
+Name[ven]=Hu dologa-LEO
+Name[vi]=Dịch bằng LEO
+Name[wa]=Ratournaedje LEO
+Name[xh]=LEO-Guqulela
+Name[zu]=Uguqulelo-LEO
+ServiceTypes=SearchProvider
+Keys=leo
+Query=http://dict.leo.org/?search=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/lycos.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/lycos.desktop
new file mode 100644
index 000000000..ba6b44c12
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/lycos.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Type=Service
+Name=Lycos
+Name[bn]=লাইকস
+Name[csb]=Lycos - szëkôrz starnów WWW
+Name[hi]=लायकोस
+Name[ne]=लाइकस
+Name[pa]=ਲੁਕੋਸ
+Name[pl]=Lycos - wyszukiwarka stron WWW
+Name[ta]=லைகோஸ்
+Name[te]=లైకోస్
+Name[th]=ไลคอส
+Name[vi]=Tra Lycos
+ServiceTypes=SearchProvider
+Keys=lycos,ly
+Query=http://www.lycos.com/cgi-bin/pursuit?cat=dir&query=\\{@}
+Query[ne]=http://www.lycos.com/cgi-bin/pursuit?cat=dirquery=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/mamma.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/mamma.desktop
new file mode 100644
index 000000000..2e104f15b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/mamma.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Type=Service
+Name=Mamma - Mother of all Search Engines
+Name[af]=Mamma - Moeder van alle Soektog Enjins
+Name[ar]=Mama -أم جميع محركات البحث
+Name[az]=Mamma - Bütün axtarış mühərriklərinin Anası
+Name[be]=Mamma - Маці ўсіх рухавікоў пошуку
+Name[br]=Mamma - Mamm pep keflusker klask
+Name[bs]=Mamma - Majka svih tražilica
+Name[ca]=Mamma - La mare de tots els motors de recerca
+Name[cs]=Mamma
+Name[csb]=Mamma - mëmka wszëstczich szëkôrzów
+Name[cy]=Mamma - Mam holl Beiriannau Chwilio
+Name[da]=Mamma - moderen til alle søgemaskiner
+Name[de]=Mamma - Die Mutter aller Suchmaschinen
+Name[el]=Mamma - Η μητέρα όλων των μηχανών αναζήτησης
+Name[eo]=Mamma - Patrino de ĉiuj retserĉiloj
+Name[es]=Mamma - La madre de todos los motores de búsqueda
+Name[et]=Mamma - kõigi otsingumootorite ema
+Name[eu]=Mamma - Bilaketa motore guztien ama
+Name[fa]=Mamma - مادر همۀ موتورهای جستجو
+Name[fr]=Mamma - La mère de tous les moteurs de recherche
+Name[fy]=Mamma - mem fan alle sykmasines
+Name[gl]=Mamma - Mai dos Motores de Procura
+Name[he]=Mamma - האימא של כל מנועי החיפוש
+Name[hi]=मम्मा- सभी खोज इंजिन की अम्मा
+Name[hr]=Mamma - Majka svih tražilica
+Name[hu]=Mamma
+Name[is]=Mamma - Mamma allra leitarvéla
+Name[it]=Mamma - Madre di tutti i motori di ricerca
+Name[kk]=Mamma - бүкіл іздеу жүйелерінің анасы
+Name[km]=Mamma - កំពូល​ម៉ាស៊ីន​ស្វែងរក
+Name[ko]=Mamma - 모든 검색 엔진의 어머니
+Name[lt]=Mamma – visų paieškų motina
+Name[lv]=Mamma - Visu Meklēšanas Dinēju Māte
+Name[mk]=Mamma - мајката на сите пребарувачки сервиси
+Name[mn]=Mamma - Бүх хайлтын машины эх
+Name[ms]=Mamma -Ibu semua Enjin Carian
+Name[nb]=Mamma – alle søkemotorers mor
+Name[nds]=Mamma - de Moder vun all Söökmaschinen
+Name[ne]=Mamma - सबै खोज्ने इन्जिनको जननी
+Name[nl]=Mamma - moeder van alle zoekmachines
+Name[nn]=Mamma – Mother of all Search Engines
+Name[nso]=Mamma - Mme wa Di-Engine kamoka tsa Nyako
+Name[pa]=ਮਾਮਾ -ਸਭ ਖੋਜ ਇੰਜਣਾਂ ਦੀ ਮਾਂ
+Name[pl]=Mamma - matka wszystkich przeszukiwarek
+Name[pt]=Mamma - Mãe de Todos os Motores de Busca
+Name[pt_BR]=Mamma - Mãe de todos os mecanismos de busca
+Name[ro]=Mamma - Mama tuturor motoarelor de căutare
+Name[ru]=Mamma - мать всех поисковых систем
+Name[rw]=Mamma - Nyina w'Imoteri z'ishakisha zose
+Name[se]=Mamma – Mother of all Search Engines
+Name[sl]=Mamma - Mati vseh iskalnikov
+Name[sr]=Mamma - Мајка свих претраживачких мотора
+Name[sr@Latn]=Mamma - Majka svih pretraživačkih motora
+Name[ss]=Mamma - make wato tonkhe tinjinin tekusesha
+Name[sv]=Mamma - Moder till alla sökmotorer
+Name[ta]=மம்மா - தேடு இயந்திரங்களின் தாய்
+Name[tg]=Mamma - Модари ҳамаи мошинҳои ҷустуҷӯ
+Name[th]=มามา - มารดาของเครื่องมือค้นหาทั้งปวง
+Name[tr]=Mamma - Bütün arama motorlarının Annesi
+Name[tt]=Mamma - Bar Ezläw-Maşínalarnıñ Anası
+Name[uk]=Mamma - мати всіх пошукових машин
+Name[uz]=Mamma - Hamma qidirish vositalarining onasi
+Name[uz@cyrillic]=Mamma - Ҳамма қидириш воситаларининг онаси
+Name[ven]=Mamma - Mmea nzhini dzothe dzau setsha
+Name[vi]=Mamma - Người mẹ của tất cả các máy truy tìm dữ liệu
+Name[wa]=Mamma - Li mame di tos les cwirress
+Name[xh]=Mamma - Umama weenjini zonke zophendlo
+Name[zh_CN]=Mamma - 所有搜索引擎之母
+Name[zh_TW]=Mamma - 搜尋引擎之母
+Name[zu]=Mamma - Umama wazo zonke Izinjini Zokusesha
+ServiceTypes=SearchProvider
+Keys=mm,mamma
+Query=http://www.mamma.com/Mamma?lang=1&timeout=4&qtype=0&query=\\{@}
+Query[ne]=http://www.mamma.com/Mamma?lang=1timeout=4&qtype=0&query=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop
new file mode 100644
index 000000000..0c3fc2edf
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop
@@ -0,0 +1,20 @@
+[Desktop Entry]
+Type=Service
+Name=MetaCrawler
+Name[af]=Metacrawler
+Name[ar]=MetaCrwaler
+Name[bn]=মেটা-ক্রলার
+Name[csb]=MetaCrawler - szëkôrz starnów WWW
+Name[hi]=मेटा-क्राउलर
+Name[ne]=मेटा क्रवलर
+Name[pa]=ਮੈਟਾਕਰਾਵਲੀਰ
+Name[pl]=MetaCrawler - wyszukiwarka stron WWW
+Name[rw]=Ikiziga-buhoroKidasanzwe
+Name[ta]=மெடா க்ராவ்லெர்
+Name[te]=మెటా క్రాలర్
+Name[th]=เมทาคลอเรอร์
+Name[ven]=Tshikokovhi tsha Meta
+Name[vi]=Tra MetaCrawler
+ServiceTypes=SearchProvider
+Keys=mc,meta,metacrawler
+Query=http://search.metacrawler.com/crawler?general=\\{@}&method=0&cat=Web&target=metaworld&redirect=web&rpp=20&hpe=10&region=0&timeout=0&sort=0&format=beta99&theme=classic&refer=mc-search&refer=mc-search
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/msdn.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/msdn.desktop
new file mode 100644
index 000000000..5a9fc733c
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/msdn.desktop
@@ -0,0 +1,74 @@
+[Desktop Entry]
+Type=Service
+Name=Microsoft Developer Network Search
+Name[af]=Microsoft Developer Network Soektog
+Name[ar]=بحث في شبكة مطوري مايكروسوفت
+Name[be]=Пошук у сетцы для распрацоўшчыкаў Microsoft
+Name[bn]=মাইক্রোসফট ডেভেলপার নেটওয়ার্ক অনুসন্ধান
+Name[bs]=Microsoft Developer Network (MSDN) pretraga
+Name[ca]=Xarxa de recerca del desenvolupador de Microsoft
+Name[cs]=Vyhledávání v Microsoft Developer Network
+Name[csb]=MSDN - dostónczi dlô programistów
+Name[cy]=Chwilio Rhwydwaith Datblygwyr Microsoft
+Name[da]=Søgning i Microsoft Developer Network
+Name[de]=Microsoft Developer Network Suche
+Name[el]=Microsoft - δικτυακή αναζήτηση προγραμματιστή
+Name[eo]=Serĉo en la Mikrosofta-programisto-reto
+Name[es]=Red de búsqueda del desarrollador de Microsoft
+Name[et]=Microsoft Developer Network otsing
+Name[eu]=Microsoft-en garatzaileen sare bilaketa
+Name[fa]=جستجوی شبکۀ توسعه‌دهندۀ مایکروسافت
+Name[fi]=Microsoft Developer Network -haku
+Name[fy]=Microsoft Developer Network Search
+Name[ga]=Cuardach Microsoft Developer Network
+Name[gl]=Procura na Rede de Desenvolvemento de Microsoft
+Name[hi]=माइक्रोसॉफ्ट डेवलपर नेटवर्क खोज
+Name[hr]=Microsoft Developer Network pretraga
+Name[is]=Microsoft Developer Network leit
+Name[it]=Ricerca Microsoft Developer Network
+Name[ja]=Microsoft Developer Network 検索
+Name[kk]=Microsoft Developer Network-те іздеу
+Name[km]=ស្វែងរក​តាម​រយៈ​បណ្ដាញ​អ្នក​អភិវឌ្ឍន៍ Microsoft
+Name[ko]=Microsoft Developer Network 검색
+Name[lt]=Microsoft Developer Network Paieška
+Name[lv]=Microsoft Izstrādātāju Tīkla Meklēšana
+Name[mn]=Microsoft Developer Network хайлт
+Name[ms]=Carian Rangkaian Pembangun Microsoft
+Name[mt]=Tfittxija fuq Microsoft Developer Network
+Name[nb]=Microsoft Developer Network-søk
+Name[ne]=माइक्रोसफ्ट विकासकर्ता सञ्जाल खोज्नुहोस्
+Name[nl]=Microsoft Developer Network Search
+Name[nn]=Microsoft Developer Network-søk
+Name[nso]=Nyako ya Kgokagano ya Mohlabolli wa Microsoft
+Name[pa]=ਮਾਈਕਰੋਸਾਫਟ ਖੋਜੀ ਨੈੱਟਵਰਕ ਖੋਜ
+Name[pl]=MSDN - zasoby dla programistów
+Name[pt]=Pesquisa na Microsoft Developer Network
+Name[pt_BR]=Busca no MDN (Microsoft Developer Network)
+Name[ro]=Căutare în Microsoft Developer Network
+Name[ru]=Поиск в Microsoft Developer Network
+Name[rw]=Ishakisha rya Mukoraporogaramu Urusobemiyoboro Microsoft
+Name[se]=Oza Microsoft Developer Network báikkis
+Name[sk]=Hľadanie Microsoft Developer Network
+Name[sl]=Iskalnik po razvijalnem omrežju Microsofta
+Name[sr]=Претраживање Мреже Microsoft-ових развијача (MSDN)
+Name[sr@Latn]=Pretraživanje Mreže Microsoft-ovih razvijača (MSDN)
+Name[ss]=Kusesha kweluchungechunge lesindlondlobalisi seMicrosoft
+Name[sv]=Sökning i Microsoft Developer Network
+Name[ta]=மைக்ரோசாப்ட் டெவலப்பர் வலைத்தள தேடுதல்
+Name[tg]=Ҷустуҷӯи шабакаи барноманависони Microsoft
+Name[th]=เครื่องมือค้นหาเกี่ยวกับเครือข่ายผู้พัฒนาของไมโครซอฟต์
+Name[tr]=Microsoft Developer Network Tarayıcı
+Name[tt]=Microsoft Developer Network eçendä Ezläw
+Name[uk]=Пошук в Microsoft Developer Network
+Name[uz]=Microsoft Developer Network'da qidirish
+Name[uz@cyrillic]=Microsoft Developer Network'да қидириш
+Name[ven]=Vhukwamani hau setsha ha mubveledzi wa Microsoft
+Name[vi]=Mạng Truy tìm cho Lập trình viên Microsoft
+Name[wa]=Cweraedje sol Rantoele des Programeus Microsoft
+Name[xh]=Uphendlo Womsebenzi womnatha Wombhekisi phambili we Microsoft
+Name[zh_CN]=MSDN 微软开发者网络搜索
+Name[zh_TW]=微軟開發者網路搜尋
+Name[zu]=Usesho Loxhumano olusakazekile Lomthuthukisi we-Microsoft
+ServiceTypes=SearchProvider
+Keys=msdn
+Query=http://msdn.microsoft.com/library/shared/searchtab/searchHandoff.asp?handoffurl=%2Fisapi%2Fgosearch.asp%3FTARGET%3D%2Fus%2Fdev%2Fdefault.asp&stcfg=d%3A%2Fhttp%2Fcnfg.xml&qu=\\{@}&btnSearch=GO
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/netcraft.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/netcraft.desktop
new file mode 100644
index 000000000..d2ea4be81
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/netcraft.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Type=Service
+Name=Netcraft
+Name[bn]=নেট-ক্রাফ্ট
+Name[fy]=Netcraft
+Name[hi]=नेटक्राफ्ट
+Name[mn]=Нэтскафе
+Name[ne]=नेटक्राफ्ट
+Name[pa]=ਨੈੱਟਕਰਾਫਟ
+Name[ta]=நெட்க்ராஃப்ட்
+Name[te]=నెట్ క్రాఫ్ట్
+Name[tg]=Шабакаи craft
+Name[th]=เน็ตคราฟต์
+Name[vi]=Tra Netcraft
+ServiceTypes=SearchProvider
+Keys=nc,netcraft
+Query=http://uptime.netcraft.com/up/graph?site=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-telephone.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-telephone.desktop
new file mode 100644
index 000000000..7abbad0e1
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-telephone.desktop
@@ -0,0 +1,71 @@
+[Desktop Entry]
+Name=Telephonebook Search Provider
+Name[af]=Telefoonbok soektog verskaffer
+Name[ar]=مزود البحث في دليل الهاتف
+Name[az]=Telephonebook Axtarış Xidmətçisi
+Name[be]=Пошук тэлефонаў
+Name[bn]=টেলিফোন-বুক অনুসন্ধান সরবরাহকারী
+Name[bs]=Telephonebook pretraga
+Name[ca]=Proveïdor de cerques a la guia de telèfons
+Name[cs]=Poskytovatel prohledávání tel. seznamu
+Name[csb]=Szëkôrz Telephonebook
+Name[cy]= Darparydd Chwiliadau Llyfr Ffôn
+Name[da]=Telefonbog-søgeudbyder
+Name[de]=Telefonbuchsuche
+Name[el]=Πάροχος αναζήτησης Telephonebook
+Name[eo]=Telefonlibro-serĉprovizanto
+Name[es]=Proveedor de búsqueda de teléfonos
+Name[et]=Hollandi telefoniraamatu otsingumootor
+Name[eu]=Telephonebook bilaketa hornitzailea
+Name[fa]=فراهم‌کنندۀ جستجوی دفتر تلفن
+Name[fi]=Puhelinluettelohaku
+Name[fr]=Moteur de recherche Telephonebook
+Name[fy]=Tillefoanboek-sykmasine
+Name[gl]=Fornecedor de Procuras na Guia Telefónica
+Name[he]=חיפוש ספר של ספר טלפונים
+Name[hi]=टेलिफोनबुक खोज प्रदायक
+Name[hr]=Davatelj usluge pretraživanja imenika
+Name[hu]=Telefonkönyv (NL)
+Name[is]=Leitarvél fyrir símaskrár
+Name[it]=Motore di ricerca Elencotelefonico
+Name[ja]=Telephonebook 検索プロバイダ
+Name[km]=អ្នក​ផ្ដល់​សេវា​ស្វែងរក​សៀវភៅ​លេខ​ទូរស័ព្ទ
+Name[ko]=전화번호부 검색 공급자
+Name[lt]=Telefono knygų paieškos teikėjas
+Name[lv]=Tālruņa katalogu meklēšanas sniedzējs
+Name[mk]=Telephonebook сервис за пребарување
+Name[ms]=Penyedia Carian Buku Telefon
+Name[mt]=Telephonebook search provider
+Name[nb]=Søkemotor for telefonkataloger
+Name[nds]=In't Telefoonbook söken (Nedderlannen)
+Name[ne]=टेलिफोन पुस्तिका खोजी प्रदायक
+Name[nl]=Telefoonboek-zoekmachine
+Name[nn]=Søkjemotor for telefonkatalog
+Name[pa]=ਟੈਲੀਫੋਨ ਖੋਜ ਪੇਸ਼ਕਾਰ
+Name[pl]=Wyszukiwarka Telephonebook
+Name[pt]=Motor de Busca de Lista Telefónica
+Name[pt_BR]=Guia Telefônico On-line
+Name[ro]=Căutare în cartea de telefoane
+Name[rw]=Utanga Ishakisha Agatabotelefone
+Name[se]=Ohcanmotor telefonkatalogaid várás
+Name[sk]=Hľadanie v telefónnom zozname
+Name[sl]=Ponudnik iskanja po telefonskem imeniku
+Name[sr]=Провајдер за претрагу телефонског именика
+Name[sr@Latn]=Provajder za pretragu telefonskog imenika
+Name[sv]=Söktjänst för telefonkatalog
+Name[ta]=தொலைபேசிபுத்தக தேடுதலை அளிப்பான்
+Name[tg]=Фароҳамкунандаи ҷустуҷӯи китобчаи рӯйхати телефонҳо
+Name[th]=ผู้ให้บริการค้นหาสมุดโทรศัพท์
+Name[tr]=Telefon Defteri Arama Sağlayıcı
+Name[tt]=Telefon Kitaplarında Ezläw
+Name[uk]=Провайдер пошуку Telephonebook
+Name[uz]=Telefonlar daftarida qidirish
+Name[uz@cyrillic]=Телефонлар дафтарида қидириш
+Name[vi]=Nhà cung cấp dịch vụ Tìm kiếm qua Danh bạ điện thoại
+Name[wa]=Dineu d' cweraedje di live di limeros d' telefone
+Name[zh_CN]=Telephonebook 搜索提供者
+Name[zh_TW]=電話號碼簿搜尋提供者
+Type=Service
+ServiceTypes=SearchProvider
+Keys=telnl,telefoon
+Query=http://www.detelefoongids.nl/tginl.dll?action=white&type=search&resultsperpage=25&pagestart=1&source=searchcategory&name2=\\{1}&name=&initials=&city=\\{2}&citycode=&zipcode4=&street=&area=conditional&areacode=&region=&subscription=&country=&catcode=&dcity=\\{2}&dname=\\{1}&dwhere=\\{2}&partnerid=
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop
new file mode 100644
index 000000000..d305fd88b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop
@@ -0,0 +1,74 @@
+[Desktop Entry]
+Name=Teletekst Search Provider
+Name[af]=Teleteks soektog verskaffer
+Name[ar]=مزود البحث Teletekst
+Name[az]=Teletekst Axtarış Xidmətçisi
+Name[be]=Пошук тэлетэксту
+Name[bn]=Teletekst অনুসন্ধান সরবরাহকারী
+Name[bs]=Teletekst pretraga
+Name[ca]=Proveïdor de cerca a Teletekst
+Name[cs]=Poskytovatel Teletekstového prohledávání
+Name[csb]=Szëkôrz Teletekst
+Name[cy]= Darparwr Chwiliadau Teletekst
+Name[da]=Teletekst-søgeudbyder
+Name[de]=Teletekst-Suche
+Name[el]=Πάροχος αναζήτησης Teletekst
+Name[eo]=Teletekst-serĉprovizanto
+Name[es]=Proveedor de búsqueda Teletekst
+Name[et]=Hollandi teleteksti otsingumootor
+Name[eu]=Teletekst bilaketa hornitzailea
+Name[fa]=فراهم‌کنندۀ جستجوی پیام‌نما
+Name[fi]=Teleteksti-palveluntarjoaja
+Name[fr]=Moteur de recherche Teletekst
+Name[fy]=Teletekst-sykmasine
+Name[ga]=Cuardach Teletekst
+Name[gl]=Fornecedor de Procuras Teletekst
+Name[he]=חיפוש ספק שירות של Teletekst
+Name[hi]=टेलिटेक्स्ट खोज प्रदायक
+Name[hr]=Davatelj usluge pretraživanja teleteksta
+Name[hu]=Teletekst keresőszolgáltatás
+Name[is]=Teletekst leitarvél
+Name[it]=Motore di ricerca Teletekst
+Name[ja]=Teletekst 検索プロバイダ
+Name[ka]=Teletekst ძიების პროვაიდერი
+Name[km]=Teletekst ៖ អ្នក​ផ្ដល់​សេវា​ស្វែងរក
+Name[ko]=Teletekst 검색 공급자
+Name[lt]=Teleteksto paieškos teikėjas
+Name[lv]=Teleteksta meklēšanas sniedzējs
+Name[mk]=Телетекст сервис за пребарување
+Name[ms]=Penyedia Carian Teletekst
+Name[mt]=Tfittxika teletekst
+Name[nb]=Søkemotor for teletekst
+Name[nds]=In "Teletekst" söken (Nedderlannen)
+Name[ne]=टेलिटेक्स्ट खोजी प्रदायक
+Name[nl]=Teletekst-zoekmachine
+Name[nn]=Søkjemotoren Teletekst
+Name[pa]=ਟੇਲੇਟੇਕਸਟ ਖੋਜ ਪੇਸ਼ਕਾਰ
+Name[pl]=Wyszukiwarka Teletekst
+Name[pt]=Motor de Busca Teletekst
+Name[pt_BR]=Provedor de buscas Teletekst
+Name[ro]=Căutare Teletekst
+Name[ru]=Поиск телетекста
+Name[rw]=Utanga Ishakisha Teletekst
+Name[se]=Ohcanmotor Teletekst
+Name[sk]=Poskytovateľ hľadania Teletekst
+Name[sl]=Ponudnik iskanja po teletekstu
+Name[sr]=Провајдер за телетекст претрагу
+Name[sr@Latn]=Provajder za teletekst pretragu
+Name[sv]=Teletekst söktjänst
+Name[ta]=Teletekst தேடுதல் அளிப்பான்
+Name[tg]=Фароҳамкунандаи ҷустуҷӯи Тексти телевизионӣ
+Name[th]=ผู้ให้บริการการค้นหา Teleteskst
+Name[tr]=Teletekst Arama Sağlayıcı
+Name[tt]=Teletekst Ezläw
+Name[uk]=Провайдер пошуку Teletekst
+Name[uz]=Teletekstda qidirish
+Name[uz@cyrillic]=Телетекстда қидириш
+Name[vi]=Nhà cung cấp dịch vụ Tìm kiếm Teletekst
+Name[wa]=Dineu di cweraedje Teletecse
+Name[zh_CN]=Teletekst 搜索提供者
+Name[zh_TW]=Teletekst 搜尋提供者
+Type=Service
+ServiceTypes=SearchProvider
+Keys=tt,teletekst
+Query=http://teletekst.nos.nl/gif/\\{@}-01.html
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop
new file mode 100644
index 000000000..c1b128780
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop
@@ -0,0 +1,83 @@
+[Desktop Entry]
+Keys=pgp,pgpkeys
+Name=OpenPGP Key Search
+Name[af]=OpenPGP Sleutel Soektog
+Name[ar]=بحث مفاتيح OpenPGP
+Name[az]=OpenPGP Açar Axtarışı
+Name[be]=Пошук ключа OpenPGP
+Name[bn]=ওপেন-পিজিপি কী (key) অনুসন্ধান
+Name[bs]=Tražilica OpenPGP ključeva
+Name[ca]=Recerca de claus OpenPGP
+Name[cs]=Vyhledávání OpenPGP klíčů
+Name[csb]=Szëkôrz kluczów OpenPGP
+Name[cy]=Chwilio Allwedd PGPAgored
+Name[da]=OpenPGP-nøglesøgning
+Name[de]=Suche nach OpenPGP-Schlüssel
+Name[el]=Αναζήτηση κλειδιού OpenPGP
+Name[eo]=OpenPGP-serĉo
+Name[es]=Búsqueda de clave OpenPGP
+Name[et]=OpenPGP võtme otsing
+Name[eu]=OpenPGP gako bilaketa
+Name[fa]=جستجوی کلید OpenPGP
+Name[fi]=OpenPGP-avainhaku
+Name[fo]=OpenPGP lyklaleiting
+Name[fr]=Clé de recherche OpenPGP
+Name[fy]=Sykje nei OpenPGP-Kaaien
+Name[gl]=Procura de Chaves de OpenPGP
+Name[he]=חיפוש מפתחות OpenPGP
+Name[hi]=ओपनपीजीपी कुंजी खोज
+Name[hr]=Pretraživanje OpenPGP ključeva
+Name[hu]=OpenPGP kulcskereső
+Name[is]=OpenPGP lykilleit
+Name[it]=Ricerca chiavi OpenPGP
+Name[ja]=OpenPGP キー検索
+Name[ka]=OpenPGP კოდის ძიება
+Name[kk]=OpenPGP кілттерін табу
+Name[km]=ស្វែងរក​កូនសោ​តាម​រយៈ OpenPGP
+Name[ko]=OpenPGP 키 검색
+Name[lt]=OpenPGP raktų paieška
+Name[lv]=OpenPGP Atslēgu meklēšana
+Name[mk]=Пребарување на OpenPGP клучеви
+Name[mn]=OpenPGP-түлхүүрээр хайх
+Name[ms]=Carian Kekunci OpenPGP
+Name[mt]=Tfittxija għal ċifrarju OpenPGP
+Name[nb]=OpenPGP nøkkelsøk
+Name[nds]=OpenPGP-Slötel-Söök
+Name[ne]=खुला PGP कुञ्जी खोजी
+Name[nl]=Zoeken naar OpenPGP-sleutels
+Name[nn]=OpenPGP-nøkkelsøk
+Name[nso]=Nyako ya Senotlelo sa PGP yeo e bulegilego
+Name[pa]=OpenPGP ਕੁੰਜੀ ਖੋਜ
+Name[pl]=Przeszukiwarka kluczy OpenPGP
+Name[pt]=Pesquisa de Chaves do OpenPGP
+Name[pt_BR]=Busca de Chaves OpenPGP
+Name[ro]=Căutare chei OpenPGP
+Name[ru]=Поиск ключей OpenPGP
+Name[rw]=Ishakisha Ijambo GufunguraPGP
+Name[se]=Oza OpenPGP-čoavdagiid
+Name[sk]=Hľadanie kľúčov OpenPGP
+Name[sl]=Iskanje ključa OpenPGP
+Name[sr]=Претраживање OpenPGP кључева
+Name[sr@Latn]=Pretraživanje OpenPGP ključeva
+Name[ss]=Vula kusesha lokuyinhloko kwePGP
+Name[sv]=OpenPGP-nyckelsökning
+Name[ta]=OpenPGP வார்த்தை தேடுதல்
+Name[te]=ఒపెన్ పిజిపి కీ అన్వెషణ
+Name[tg]=Ҷустуҷӯи калиди OpenPGP
+Name[th]=ค้นหารหัส OpenPGP
+Name[tr]=OpenPGP anahtar Arayıcı
+Name[tt]=OpenPGP Açqıç Ezläw
+Name[uk]=Пошук ключів OpenPGP
+Name[uz]=OpenPGP kalitlarni qidirish
+Name[uz@cyrillic]=OpenPGP калитларни қидириш
+Name[ven]=U setsha ha khii ya PGP yo vuleaho
+Name[vi]=Tìm kiếm bằng từ khoá của OpenPGP
+Name[wa]=Cweraedje d' ene clé OpenPGP
+Name[xh]=Uphendlo Lwesitshixo se OpenPGP
+Name[zh_CN]=OpenPGP 关键字搜索
+Name[zh_TW]=OpenPGP 金鑰搜尋
+Name[zu]=OpenPGP Usesho olubalulekile
+Query=http://pgp.dtype.org:11371/pks/lookup?search=\\{@}&op=vindex
+Query[ne]=http://pgp.dtype.org:11371/pks/lookup?search=\\{@}op=vindex
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/php.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/php.desktop
new file mode 100644
index 000000000..5289cd38d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/php.desktop
@@ -0,0 +1,81 @@
+[Desktop Entry]
+Keys=php
+Name=PHP Search
+Name[af]=PHP Soektog
+Name[ar]=بحث PHP
+Name[az]=PHP Axtarışı
+Name[be]=Пошук PHP
+Name[bn]=পি-এইচ-পি অনুসন্ধান
+Name[br]=Klask PHP
+Name[bs]=PHP Tražilica
+Name[ca]=Recerca PHP
+Name[cs]=Vyhledávání PHP
+Name[csb]=PHP Szëkba
+Name[cy]=Chwilio PHP
+Name[da]=PHP-søgning
+Name[el]=Αναζήτηση PHP
+Name[eo]=PHP-serĉo
+Name[es]=Búsqueda PHP
+Name[eu]=PHP bilaketa
+Name[fa]=جستجوی PHP
+Name[fi]=PHP-haku
+Name[fr]=Recherche PHP
+Name[fy]=PHP-sykaksje
+Name[ga]=Cuardach PHP
+Name[gl]=Procura PHP
+Name[he]=חיפוש PHP
+Name[hi]=पीएचपी खोज
+Name[hr]=PHP pretraživanje
+Name[is]=PHP leit
+Name[it]=Ricerca PHP
+Name[ja]=PHP 検索
+Name[ka]=PHP ძიება
+Name[kk]=PHP іздеуі
+Name[km]=ស្វែងរក PHP
+Name[ko]=PHP 검색
+Name[lt]=PHP paieška
+Name[lv]=PHP Meklēšana
+Name[mk]=Пребарување за PHP
+Name[mn]=PHP хайлт
+Name[ms]=Carian PHP
+Name[mt]=Tfittxija PHP
+Name[nb]=PHP-søk
+Name[nds]=PHP-Söök
+Name[ne]=PHP खोजी
+Name[nl]=PHP-zoekactie
+Name[nn]=PHP-søk
+Name[nso]=Nyako ya PHP
+Name[pa]=PHP ਖੋਜ
+Name[pl]=PHP (język skryptowy)- dokumentacja
+Name[pt]=Pesquisa de PHP
+Name[pt_BR]=Busca PHP
+Name[ro]=Căutare PHP
+Name[ru]=Поиск PHP
+Name[rw]=Ishakisha PHP
+Name[se]=PHP-ohcan
+Name[sk]=Hľadanie PHP
+Name[sl]=Iskanje po PHP
+Name[sr]=PHP претраживање
+Name[sr@Latn]=PHP pretraživanje
+Name[ss]=Kusesha kwe PHP
+Name[sv]=PHP search
+Name[ta]=PHP தேடு
+Name[te]=పి హెచ్ పి అన్వెషణ
+Name[tg]=Ҷустуҷӯи PHP
+Name[th]=ค้นหาเกี่ยวกับ PHP
+Name[tr]=PHP Arayıcı
+Name[tt]=PHP Ezläw
+Name[uk]=Пошук PHP
+Name[uz]=PHP qidirish
+Name[uz@cyrillic]=PHP қидириш
+Name[ven]=U setsha ha PHP
+Name[vi]=Tìm kiếm PHP
+Name[wa]=Cweraedje PHP
+Name[xh]=Uphendlo lwe PHP
+Name[zh_CN]=PHP 搜索
+Name[zh_TW]=PHP 搜尋
+Name[zu]=Usesho lwe-PHP
+Query=http://www.php.net/search.php?show=\\{mode,"manual"}&pattern=\\{@}
+Query[ne]=http://www.php.net/search.php?show=\\{mode,"manual"}pattern=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/python.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/python.desktop
new file mode 100644
index 000000000..2825c073d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/python.desktop
@@ -0,0 +1,84 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=py,python
+Name=Python Reference Manual
+Name[af]=Python Verwysing Handleiding
+Name[ar]=كتيب Python المصدري
+Name[az]=Python Əl Kitabcığı
+Name[be]=Падручнік Python
+Name[bn]=পাইথন রেফারেন্স ম্যানুয়াল
+Name[bs]=Python referentni priručnik
+Name[ca]=Manual de referència de Python
+Name[cs]=Manuál jazyka Python
+Name[csb]=Python - pòdrãcznik
+Name[cy]=Llawlyfr Cyfeiriol Python
+Name[da]=Python reference-manual
+Name[de]=Python-Handbuch
+Name[el]=Εγχειρίδιο αναφοράς Python
+Name[eo]=Pitono-manlibro
+Name[es]=Manual de referencia de Python
+Name[eu]=Python-en erreferentzia eskuliburua
+Name[fa]=راهنمای مرجع Python
+Name[fi]=Pythonin referenssimanuaali
+Name[fr]=Manuel de référence de Python
+Name[ga]=Lámhleabhar Python
+Name[gl]=Manual de Referéncia de Python
+Name[he]=תיעוד של פייתון
+Name[hi]=पायथन रेफरेंस मेनुअल
+Name[hr]=Python referentni priručnik
+Name[hu]=Python referencia-kézikönyv
+Name[id]=Manual Referensi Python
+Name[is]=Python Handbók
+Name[it]=Manuale di riferimento di Python
+Name[ja]=Python リファレンスマニュアル
+Name[kk]=Python анықтамасы
+Name[km]=សៀវភៅ​យោង Python
+Name[ko]=Python 참조 설명서
+Name[lt]=Python vadovas-žinynas
+Name[lv]=Python Rokasgrāmata
+Name[mk]=Референтен прирачник за Python
+Name[mn]=Python-Гарын авлага
+Name[ms]=Manual Rujukan Python
+Name[mt]=Manwal tal-Python
+Name[nb]=Referansehåndbok for Python
+Name[nds]=Python-Referenzhandbook
+Name[ne]=पाइथन सन्दर्भ म्यानुअल
+Name[nn]=Python-referansehandbok
+Name[nso]=Manual wa Tebeledisiso ya Python
+Name[pa]=Python ਹਵਾਲਾ ਦਸਤਾਵੇਜ਼
+Name[pl]=Python (język programowania)- podręcznik
+Name[pt]=Manual de Referência do Python
+Name[pt_BR]=Manual de Referência do Python
+Name[ro]=Manualul de referință Python
+Name[ru]=Справочник по Python
+Name[rw]=Igitabo cy'Imikorere ya Python
+Name[se]=Python-referánsagiehtagirji
+Name[sl]=Referenčni priročnik za python
+Name[sr]=Референтно упутство за Python
+Name[sr@Latn]=Referentno uputstvo za Python
+Name[sv]=Python referensmanual
+Name[ta]=பைதான் பார்வை கையேடு
+Name[tg]=Маълумотнома аз Python
+Name[th]=คู่มืออ้างอิงเกี่ยวกับ Python
+Name[tr]=Python Başvuru Elkitabı
+Name[tt]=Python Qullanması
+Name[uk]=Довідник по Python
+Name[uz]=Python uchun koʻllanma
+Name[uz@cyrillic]=Python учун кўлланма
+Name[ven]=Tshifanyisi tsha Manyuala tsha Python
+Name[vi]=Sách Tham khảo Python
+Name[wa]=Manuel di referince di Python
+Name[xh]=Ubhekiso lwe Python yesandla
+Name[zh_CN]=Python 参考手册
+Name[zh_TW]=Python 參考手冊
+Name[zu]=Incwadi yokuqondiwe ye-Python
+Query=http://www.google.com/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+Query[en_GB]=http://www.google.co.uk/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+Query[fr]=http://www.google.fr/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+Query[fy]=http://www.google.nl/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+Query[nb]=http://www.google.no/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+Query[nl]=http://www.google.nl/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+Query[pt]=http://www.google.pt/search?sourceid=python-search&q=\{@}&submit=Search&q=site%3Apython.org
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/qt.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/qt.desktop
new file mode 100644
index 000000000..2ee904fd9
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/qt.desktop
@@ -0,0 +1,78 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=qt
+Name=Latest Qt Online Documentation
+Name[af]=Nuutste Qt Aanlyn Dokumentasie
+Name[ar]=آخر وثائق مساعدة Qt
+Name[az]=Onlayn Qt Sənədləri
+Name[be]=Найноўшая дакументацыя па Qt
+Name[bn]=কিউ-টি অনলাইন ডকুমেন্টেশন
+Name[bs]=Najnovija Qt online dokumentacija
+Name[ca]=L'última documentació en línia de Qt
+Name[cs]=Nejnovější online dokumentace Qt
+Name[csb]=Slédnô dokùmentacëjô Qt
+Name[cy]=Dogfennaeth Diweddar QT Online
+Name[da]=Nyeste Qt online-dokumentation
+Name[de]=Aktuelle Qt-Online-Dokumentation
+Name[el]=Τελευταία τεκμηρίωση του Qt στο διαδίκτυο
+Name[eo]=La plej aktuala reta QT Dokumentaro
+Name[es]=Ultima documentación Qt en línea
+Name[et]=Qt uusim dokumentatsioon võrgus
+Name[eu]=Azken Qt lineako dokumentazioa
+Name[fa]=آخرین مستندات برخط Qt
+Name[fi]=Uusin Qt-dokumentaatio
+Name[fr]=La dernière documentation en ligne de Qt
+Name[fy]=Nijste Qt Online-dokumintaasje
+Name[ga]=Doiciméadú Ar Líne Is Déanaí Qt4
+Name[gl]=Última Documentación en Liña de Qt
+Name[he]=תיעוד מקוון מעודכן של Qt
+Name[hi]=नवीनतम क्यूटी आनलाइन दस्तावेज़
+Name[hr]=Najnovija Qt dokumentacija na Internetu
+Name[hu]=A legfrissebb Qt online dokumentáció
+Name[id]=Dokumentasi Qt Online Terbaru
+Name[is]=Nýjustu Qt handbækurnar
+Name[it]=Ultima documentazione online delle Qt
+Name[ja]=Qt 最新オンラインドキュメント
+Name[kk]=Qt-ның ең жаңа желідегі құжаттамасы
+Name[km]=ឯកសារ​ថ្មី​បំផុត​លើ​បណ្ដាញ​របស់ Qt
+Name[ko]=최신 Qt 온라인 문서
+Name[lt]=Naujausia Qt dokumentacija tinkle
+Name[lv]=Jaunākā Qt Dokumentācija
+Name[mk]=Последната Qt-документација на мрежа
+Name[mn]=Хамгийн сүүлийн Qt онлайн баримтжуулалт
+Name[ms]=Dokumentasi Dalam Talian Kuantiti Terakhir
+Name[mt]=Dokumentazzjoni Qt Online
+Name[nb]=Nyeste QT-dokumentasjon på nett
+Name[nds]=Niegst Online-Dokmentatschoon vun Qt
+Name[ne]=नवीनतम Qt अनलाइन मिसिलीकरण
+Name[nl]=Nieuwste Qt Online-documentatie
+Name[nn]=Nyaste QT-dokumentasjon på nett
+Name[pa]=ਤਾਜ਼ਾ Qt ਆਨਲਾਈਨ ਦਸਤਾਵੇਜ਼
+Name[pl]=Najnowsza dokumentacja Qt
+Name[pt]=Última Documentação 'Online' do Qt
+Name[pt_BR]=Documentação on-line da última versão da Qt
+Name[ro]=Documentația Qt on-line
+Name[ru]=Наиболее свежая онлайн-документация Qt
+Name[rw]=Ikoreshanyandiko Interineti rya Vuba Qt
+Name[se]=Ođđamus Qt-dokumentašuvdna fierpmádagas
+Name[sk]=Posledná online dokumentácia Qt
+Name[sl]=Najnovejša spletna dokumentacija za Qt
+Name[sr]=Најновија документација Qt-а на вези
+Name[sr@Latn]=Najnovija dokumentacija Qt-a na vezi
+Name[sv]=Senaste Qt-direktdokumentation
+Name[ta]=புதிய க்யூ டீ இணை ஆவணப்பதிவு
+Name[tg]=Ҷадидтарин мустанадҳои рӯи хати Qt
+Name[th]=เอกสารออนไลน์ล่าสุดเกี่ยวกับ Qt
+Name[tr]=Güncel Çevrimiçi Qt Dökümantasyonu
+Name[tt]=Qt'nıñ Online Qullanması
+Name[uk]=Остання документація Qt онлайн
+Name[uz]=Qt uchun koʻllanma
+Name[uz@cyrillic]=Qt учун кўлланма
+Name[vi]=Tài liệu Trực tuyến Mới nhất của Qt
+Name[wa]=Documintåcion di Qt so les fyis
+Name[zh_CN]=最新的 Qt 在线文档
+Name[zh_TW]=最新的 Qt 線上文件
+Query=http://doc.trolltech.com/latest/\\{@}.html
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/qt3.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/qt3.desktop
new file mode 100644
index 000000000..bc59a41ac
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/qt3.desktop
@@ -0,0 +1,71 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=qt3
+Name=Qt3 Online Documentation
+Name[af]=Qt3 Aanlyn Dokumentasie
+Name[ar]=توثيق Qt3 على الخط
+Name[be]=Дакументацыя Qt3
+Name[bn]=কিউ-টি-৩ অনলাইন ডকুমেন্টেশন
+Name[br]=Teuliadur Qt3 enlinenn
+Name[bs]=Qt3 online dokumentacija
+Name[ca]=Documentació en línia de Qt3
+Name[cs]=Online dokumentace Qt3
+Name[csb]=Dokùmentacëjô online Qt3
+Name[da]=Qt3 online-dokumentation
+Name[de]=Online-Dokumentation zu Qt3
+Name[el]=Τεκμηρίωση του Qt3 στο διαδίκτυο
+Name[eo]=Reta QT Dokumentaro
+Name[es]=Documentación Qt3 en línea
+Name[et]=Qt3 dokumentatsioon võrgus
+Name[eu]=Qt3 lineako dokumentazioa
+Name[fa]=مستندات برخط Qt3
+Name[fi]=QT3:n verkkodokumentaatio
+Name[fr]=Documentation en ligne de Qt
+Name[fy]=Qt3 online dokumintaasje
+Name[ga]=Doiciméadú Ar Líne Qt3
+Name[gl]=Documentación en Liña de Qt3
+Name[he]=תיעוד מקוון מעודכן של Qt3
+Name[hr]=Qt dokumentacija na Internetu
+Name[hu]=Qt3 online dokumentáció
+Name[id]=Dokumentasi Online Qt3
+Name[is]=Qt handbækur á Netinu
+Name[it]=Documentazione online delle Qt3
+Name[ja]=Qt3 オンラインドキュメント
+Name[ka]=Qt3 ინტერნეტ დოკუმენტაცია
+Name[kk]=Qt3 желідегі құжаттамасы
+Name[km]=ឯកសារ​ថ្មី​បំផុត​លើ​បណ្ដាញ​របស់ Qt3
+Name[ko]=Qt3 온라인 문서
+Name[lt]=Qt3 dokumentacija internete
+Name[mk]=Документација за Qt3 на мрежа
+Name[ms]=Dokumentasi Dalam Talian Qt3
+Name[nb]=QT3-dokumentasjon på nett
+Name[nds]=Qt3-Online-Dokmentatschoon
+Name[ne]=Qt3 अनलाइन मिसिलीकरण
+Name[nl]=Qt3 online documentatie
+Name[nn]=QT3-dokumentasjon på nett
+Name[pa]=Qt3 ਆਨਲਾਇਨ ਦਸਤਾਵੇਜ਼
+Name[pl]=Dokumentacja Qt3 w sieci
+Name[pt]=Documentação 'Online' do Qt3
+Name[pt_BR]=Documentação on-line da Qt3
+Name[ro]=Documentația Qt online
+Name[ru]=Документация Qt3
+Name[se]=Qt3-dokumentašuvdna fierpmádagas
+Name[sk]=Qt3 online dokumentácia
+Name[sl]=Spletna dokumentacija za Qt3
+Name[sr]=Документација на вези за Qt3
+Name[sr@Latn]=Dokumentacija na vezi za Qt3
+Name[sv]=Qt3-direktdokumentation
+Name[tg]=Мустанадҳои шабакаи локалии Qt3
+Name[th]=เอกสารออนไลน์เกี่ยวกับ Qt3
+Name[tr]=Qt3 Çevrimiçi Dökümantasyonu
+Name[uk]=Документація Qt3
+Name[uz]=Qt3 uchun koʻllanma
+Name[uz@cyrillic]=Qt3 учун кўлланма
+Name[vi]=Tài liệu Trực tuyến của Qt3
+Name[wa]=Documintåcion di Qt3 so les fyis
+Name[zh_CN]=Qt3 在线文档
+Name[zh_TW]=Qt3 線上文件
+Query=http://doc.trolltech.com/3.3/\\{@}.html
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/rae.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/rae.desktop
new file mode 100644
index 000000000..b87befb0a
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/rae.desktop
@@ -0,0 +1,77 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=rae
+Name=Dictionary of the Spanish Academy (RAE)
+Name[af]=Woordeboek van die Spaanse Akademie (RAE)
+Name[ar]=قاموس الأكاديمية الأسبانية (RAE)
+Name[az]=İspan Akademiyası Lüğəti (RAE)
+Name[be]=Слоўнік Гішпанскай акадэміі (RAE)
+Name[bn]=স্প্যানিশ অ্যাকাডেমীর অভিধান (RAE)
+Name[br]=Geriaoueg akadamiezh spaniolek (RAE)
+Name[bs]=Rječnik Španske akademije (RAE)
+Name[ca]=Diccionari de l'Acadèmia Espanyola (RAE)
+Name[cs]=Slovník Špenělské akademie
+Name[csb]=Słowôrz Szpańsczi Akademijë (RAE)
+Name[cy]=Geiriadur yr Academi Sbaeneg (RAE)
+Name[da]=Ordbog fra det spanske akademi (RAE)
+Name[de]=Lexikon der spanischen Akademie (RAE)
+Name[el]=Λεξικό της ισπανικής ακαδημίας (RAE)
+Name[eo]=Vortaro de la Reĝa Akademio Hispana
+Name[es]=Diccionario de la Real Academia de la Lengua Española (RAE)
+Name[et]=Hispaania akadeemia (RAE) sõnaraamat
+Name[eu]=Gazteleraren Akademiaren hiztegia (RAE)
+Name[fa]=واژه‌نامۀ فرهنگستان اسپانیایی (RAE)
+Name[fi]=Espanjalaisen akatemian sanakirja (RAE)
+Name[fr]=Dictionaire de la Spanish Academy (RAE)
+Name[fy]=Wurdboek fan de Spaanske akademy (RAE)
+Name[gl]=Dicionario da Academia Española (RAE)
+Name[he]=מילון של האקדמיה הספרדית (RAE)
+Name[hi]=स्पेनी अकादमी का शब्दकोश(RAE)
+Name[hr]=Rječnik španjolske akademije (RAE)
+Name[hu]=A Spanyol Akadémia címjegyzéke (RAE)
+Name[is]=Orðabók spönsku akademíunnar (RAE)
+Name[it]=Dizionario della Accademia Spagnola (RAE)
+Name[ja]=スペイン大学辞書
+Name[kk]=Испан Академиясының сөздігі (RAE)
+Name[km]=វចនានុក្រម Spanish Academy (RAE)
+Name[ko]=스페인 아카데미 사전 (RAE)
+Name[lt]=Ispanijos akademijos (RAE) žodynas
+Name[lv]=Spāņu Akadēmijas (RAE) vārdnīca
+Name[mk]=Речник на Шпанската академија (RAE)
+Name[mn]=Испани акдемийн толь бичиг (RAE)
+Name[ms]=Kamus Akademi Bahasa Sepanyol (RAE)
+Name[mt]=Dizzjunarju tal-Akkademja Spanjola (RAE)
+Name[nb]=Ordboka til det spanske akademiet (RAE)
+Name[nds]=Nakieksel vun de Spaansche Akademie (RAE)
+Name[ne]=स्पेनी प्रतिष्ठानको शब्दकोश (RAE)
+Name[nl]=Woordenboek van de Spaanse academie (RAE)
+Name[nn]=Ordboka til det spanske akademiet (RAE)
+Name[pa]=ਸਪੇਨੀ ਐਕਡਮੀ ਦਾ ਸ਼ਬਦ-ਕੋਸ਼ (RAE)
+Name[pl]=Słownik Akademii Hiszpańskiej (RAE)
+Name[pt]=Dicionário da Academia Espanhola (RAE)
+Name[pt_BR]=Dicionário da Academia Espanhola (RAE)
+Name[ro]=Dicționarul Academiei Spaniole (RAE)
+Name[ru]=Словарь Испанской Академии (RAE)
+Name[rw]=Inkoranyamagambo y'Ishyirahamwe-intiti rya Esipanye (RAE)
+Name[se]=Spanialaš akademiija sátnegirji (RAE)
+Name[sk]=Slovník Španielskej akadémie (RAE)
+Name[sl]=Slovar Španske akademije (RAE)
+Name[sr]=Речник шпанске академије (RAE)
+Name[sr@Latn]=Rečnik španske akademije (RAE)
+Name[sv]=Spanska akademins ordbok (RAE)
+Name[ta]= ஸ்பெனிஷ் அகேடமியின் அகராதி(RAE)
+Name[tg]=Луғати академии Испаниёӣ (RAE)
+Name[th]=พจนานุกรมของ Spanish Academy (RAE)
+Name[tr]=İspanyol Akademisinin Sözlüğü (RAE)
+Name[tt]=İspan Akademineñ Süzlege (RAE)
+Name[uk]=Словник Іспанської академії (RAE)
+Name[uz]=Ispan akademiyasining (RAE) lugʻati
+Name[uz@cyrillic]=Испан академиясининг (RAE) луғати
+Name[vi]=Từ điển của Viện hàn lâm Tây Ban Nha (RAE)
+Name[wa]=Diccionaire del Royåle Academeye Espagnole (RAE)
+Name[zh_CN]=西班牙学院的字典(RAE)
+Name[zh_TW]=西班牙金像獎字典 (RAE)
+Query=http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&LEMA=\\{@}&FORMATO=ampliado
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/rfc.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/rfc.desktop
new file mode 100644
index 000000000..a11b090b0
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/rfc.desktop
@@ -0,0 +1,57 @@
+[Desktop Entry]
+Keys=rfc,rfcs
+Name=IETF Requests for Comments
+Name[af]=IETF Versoeke vir Kommentaar
+Name[ar]=طلبات IETF للتعليقات
+Name[az]=IETF Şərh İstəyi
+Name[be]=Запыты каментараў IETF
+Name[bs]=IETF Requests for Comments (RFC)
+Name[ca]=Requeriments per a comentaris de la IETF
+Name[csb]=IETF - dokùmentë RFC (sztandardë ë protokòłë)
+Name[cy]=Ceisiadau am Sylwadau IETF
+Name[el]=IETF ερωτήσεις για σχόλια
+Name[eo]=IETF-Komentodokumento (RFC)
+Name[fa]=درخواست IETF برای توضیحات
+Name[fi]=IETF-kommenttipyynnöt (RFC)
+Name[fr]=RFC IETF
+Name[gl]=IETF Peticións de Comentarios
+Name[hi]=IETF निवेदन, टिप्पणी के लिए
+Name[hr]=IETF zahtjevi za komentarima
+Name[hu]=IETF RFC-k (Request for Comments)
+Name[is]=IETF Requests for Comments (RFC)
+Name[it]=RFC di IETF
+Name[kk]=IETF пайымдаманы сұрау (RFC)
+Name[km]=សំណើ​សុំ​សេចក្ដី​អធិប្បាយ​តាម​រយៈ IETF
+Name[ko]=IETF RFC
+Name[lv]=IETF Komentāru Pieprasījums
+Name[mk]=IETF Барања за коментари (rfc)
+Name[ms]=Permintaan Komen IETF
+Name[nds]=RFCs (IETF-"Requests for Comments")
+Name[ne]=टिप्पणीका लागि IETF अनुरोध
+Name[nso]=Dikgopelo tsa IETF tsa Dipolelwana
+Name[pa]=ਟਿੱਪਣੀ ਲਈ IETF ਬੇਨਤੀ
+Name[pl]=IETF - dokumenty RFC (standardy i protokoły)
+Name[pt]=Pedidos de Comentários do IETF
+Name[pt_BR]=RFC (Requests for Comments)
+Name[ro]=RFC-uri IETF
+Name[ru]=Запросы для комментариев IETF (RFC)
+Name[rw]=Ibisabwa IETF bijyanye n'IIbisobanuro
+Name[sl]=Zahteve IETF za komentarje
+Name[sr]=IETF-ови захтеви за коментаре
+Name[sr@Latn]=IETF-ovi zahtevi za komentare
+Name[ta]=IETF குறிப்புகளுக்கான வேண்டுதல்கள்
+Name[tg]=Барои назри IETF-и дархост
+Name[th]=การร้องขอ IETF สำหรับคำอธิบาย
+Name[tr]=IETF Yorum istemleri
+Name[tt]=IETF-Açıqlama Soraw
+Name[uk]=Запит коментарів (RFC) IETF
+Name[ven]=IETF i humbela Mahumbulwa
+Name[vi]=Yêu cầu Bình luận IETF
+Name[wa]=Ricweraedjes po des rawetes IETF
+Name[xh]=Izicelo Zogqabazo ze IETF
+Name[zh_CN]=IETF 评论请求
+Name[zh_TW]=IETF RFC 文件
+Name[zu]=Izicelo ze-IETF zemibono
+Query=http://www.ietf.org/rfc/rfc\\{@}.txt
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop
new file mode 100644
index 000000000..a6e407083
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop
@@ -0,0 +1,44 @@
+[Desktop Entry]
+Type=Service
+Name=RPM-Find
+Name[af]=RPM-Vind
+Name[be]=Пошук RPM
+Name[csb]=Rpmfind - szëkôrz paczétów RPM
+Name[de]=RPM-Suche
+Name[el]=RPM-Αναζήτηση
+Name[eo]=RPM-trovilo
+Name[fa]=یافتن RPM
+Name[fi]=RPM-haku
+Name[fo]=RPM-finn
+Name[hi]=आरपीएम-फाइंड
+Name[hr]=RPM traženje
+Name[is]=RPM-leit
+Name[ka]=RPM-პოვნა
+Name[kk]=RPM-ды табу
+Name[km]=រក RPM
+Name[ko]=RPM 찾기
+Name[lv]=RPM-Meklēšana
+Name[mk]=RPM-барање
+Name[mn]=RPM-хайлт
+Name[ne]=RPM-फेला पार्नुहोस्
+Name[nso]=RPM-Hwetsa
+Name[pl]=Rpmfind - wyszukiwarka pakietów RPM
+Name[ro]=Căutare pachete RPM
+Name[ru]=Поиск RPM
+Name[rw]=Kubona-RPM
+Name[ss]=Tfola i-RPM
+Name[ta]=RPM-தேடு
+Name[tg]=Ҷустуҷӯи RPM
+Name[th]=ค้นหา RPM
+Name[tt]=RPM-Ezläw
+Name[uz]=RPM qidirish
+Name[uz@cyrillic]=RPM қидириш
+Name[ven]=RPM-Toda
+Name[vi]=Tìm RPM
+Name[xh]=RPM-Fumana
+Name[zu]=RPM-Thola
+ServiceTypes=SearchProvider
+Keys=rf,rpmfind
+Query=http://www.rpmfind.net/linux/rpm2html/search.php?query=\{@}
+Query[en_GB]=http://fr.rpmfind.net/linux/rpm2html/search.php?query=\{@}
+Query[ko]=http://www.rpmfind.net/linux/rpm2html/search.php?query=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop
new file mode 100644
index 000000000..6f165eb65
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Type=Service
+Name=Ruby Application Archive
+Name[af]=Ruby Aansoek Argief
+Name[ar]=أرشيف تطبيقات Ruby
+Name[az]=Ruby Proqram Arxivçisi
+Name[be]=Архіў праграмаў Ruby
+Name[bn]=রুবি অ্যাপলিকেশন আর্কাইভ
+Name[br]=Diell arloadoù Ruby
+Name[bs]=Ruby arhiva aplikacija
+Name[ca]=Arxiu d'aplicacions Ruby
+Name[cs]=Archív aplikací Ruby
+Name[csb]=Ruby - archiwa programów
+Name[cy]=Archif Cymhwysiadau Ruby
+Name[da]=Ruby programarkiv
+Name[el]=Αρχειοθήκη εφαρμογών Ruby
+Name[eo]=Aplikaĵoaĥivo por "Ruby"
+Name[es]=Archivo de aplicación Ruby
+Name[eu]=Ruby aplikazio fitxategia
+Name[fa]=بایگانی کاربرد Ruby
+Name[fi]=Ruby-sovelluspaketti
+Name[fr]=Archive d'application Ruby
+Name[fy]=Ruby programma-argyf
+Name[ga]=Cartlann Feidhmchlár Ruby
+Name[gl]=Arquivo de Aplicacións Ruby
+Name[he]=מאגר יישומי Ruby
+Name[hi]=रूबी अनुप्रयोग आर्काइव
+Name[hr]=Arhiva Ruby aplikacija
+Name[hu]=Ruby alkalmazásarchívum
+Name[id]=Arsip Aplikasi Ruby
+Name[it]=Archivio di applicazioni Ruby
+Name[ja]=Ruby アプリケーションアーカイブ
+Name[kk]=Ruby қолданбалар архиві
+Name[km]=ប័ណ្ណសារ​កម្មវិធី Ruby
+Name[ko]=Ruby 프로그램 저장소
+Name[lt]=Ruby taikomųjų programų archyvas
+Name[lv]=Ruby Aplikāciju Arhīvs
+Name[mk]=Архива со Ruby-апликации
+Name[ms]=Arkib Aplikasi Ruby
+Name[mt]=Arkivju ta' programmi Ruby
+Name[nb]=Ruby programarkiv
+Name[nds]=Ruby-Programmarchiv
+Name[ne]=रुबी अनुप्रयोग सङ्ग्रह
+Name[nl]=Ruby programma-archief
+Name[nn]=Ruby-programarkiv
+Name[nso]=Polokelo ya Tshomiso ya Ruby
+Name[pa]=Ruby ਕਾਰਜ ਆਰਚੀਵ
+Name[pl]=Ruby (język programowania) - programy
+Name[pt]=Arquivo de Aplicações Ruby
+Name[pt_BR]=Arquivo de Aplicativos Ruby
+Name[ro]=Arhiva de aplicații Ruby
+Name[ru]=Архив приложений Ruby
+Name[rw]=Ubushyinguro bwa Porogaramu Ruby
+Name[se]=Ruby-prográmmavuorká
+Name[sl]=Arhiv programov Ruby
+Name[sr]=Архива Ruby програма
+Name[sr@Latn]=Arhiva Ruby programa
+Name[ta]=ரூபி பயன்பாட்டு களஞ்சியம்
+Name[tg]=Архиви барномаи Ruby
+Name[th]=คลังแอพพลิเคชันภาษารูบี้
+Name[tr]=Ruby Uygulama Arşivi
+Name[tt]=Ruby Yazılımnar Turlaması
+Name[uz]=Ruby dastur arxivi
+Name[uz@cyrillic]=Ruby дастур архиви
+Name[ven]=Apulifikhesheni ya Vhulungazwakale ya Ruby
+Name[vi]=Thư mục lưu trữ Ứng dụng Ruby
+Name[wa]=Årtchive di programes Ruby
+Name[xh]=Indawo ye Ruby yokugcina Isicelo
+Name[zh_TW]=Ruby 應用程式檔案庫
+Name[zu]=Umqulu Womyaleli we-Ruby
+ServiceTypes=SearchProvider
+Keys=raa
+Query=http://raa.ruby-lang.org/search.rhtml?search=\\{@}
+Query[fy]=http://www.ruby-lang.org/en/raa-list.rhtml?name=\\{@}
+Query[ja]=http://raa.ruby-lang.org/search.rhtml?name=\\{@}
+Query[ko]=http://www.ruby-lang.org/en/raa-list.rhtml?name=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/seek.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/seek.desktop
new file mode 100644
index 000000000..55351db8f
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/seek.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Service
+Name=GO.com
+Name[de]=go.com
+Name[eo]=Go.com
+Name[hi]=गो.कॉम
+Name[mn]=go.com
+Name[nso]=EYA.com
+ServiceTypes=SearchProvider
+Keys=seek
+Query=http://www.go.com/Titles?col=WW&qt=\\{@}&svx=home_searchbox&sv=IS&lk=noframeso
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop
new file mode 100644
index 000000000..3a04f92a2
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Keys=sf,sourceforge
+Name=SourceForge
+Name[af]=Sourceforge
+Name[bn]=সোর্স-ফর্জ
+Name[csb]=SourceForge - ùdbë
+Name[eo]=Programforĝejo
+Name[fo]=Sourceforge
+Name[hi]=सोर्स-फोर्ज
+Name[ne]=सोर्स फर्ज
+Name[nso]=Bofora bja Mothopo
+Name[pl]=SourceForge - projekty
+Name[rw]=GucuraInkomoko
+Name[ta]=மூலத்திருட்டு
+Name[te]=సొర్స్ ఫొర్జ్
+Name[vi]=Tra SourceForge
+Query=http://sourceforge.net/search/?type_of_search=\\{type,"soft"}&exact=\{exact,"0"}&words=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/technorati.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/technorati.desktop
new file mode 100644
index 000000000..6a82f51a1
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/technorati.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Type=Service
+Name=Technorati
+Name[bn]=টেক্‌নোক্রেটি
+Name[csb]=Technorati - blodżi
+Name[lt]=Technorati paieška
+Name[ne]=टेक्नोरती
+Name[vi]=Tra từ Kĩ thuật bằng Technorati
+ServiceTypes=SearchProvider
+Keys=tr,technorati
+Query=http://technorati.com/cosmos/search.html?sourceid=kde-search&url=\\{@}
+Query[ja]=http://technorati.com/cosmos/search.html?sourceid=kde-search&url=\\\\{@}
+Query[ne]=http://technorati.com/cosmos/search.html?sourceid=kde-searchurl=\\{@}
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop
new file mode 100644
index 000000000..ce7dd5056
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop
@@ -0,0 +1,55 @@
+[Desktop Entry]
+Type=Service
+Name=Technorati Tags
+Name[be]=Тэгі Technorati
+Name[bn]=টেক্‌নোক্রেটি ট্যাগ
+Name[br]=Liketennoù Technorati
+Name[bs]=Technorati tagove
+Name[ca]=Etiquetes Technorati
+Name[cs]=Technorati značky
+Name[csb]=Merczi Technorati
+Name[da]=Technorati mærker
+Name[de]=Technorati Themen
+Name[el]=Ετικέτες Technorati
+Name[eo]=Technorati-aj Etikedoj
+Name[es]=Etiquetas de Technorati
+Name[et]=Technorati sildid
+Name[eu]=Technorati etiketak
+Name[fa]=برچسبهای Technorati
+Name[fi]=Technorati-tunnisteet
+Name[fr]=Balises Technorati
+Name[fy]=Technorati-markearring
+Name[ga]=Clibeanna Technorati
+Name[gl]=Etiquetas Technorati
+Name[hr]=Technorati oznake
+Name[is]=Technorati tög
+Name[it]=Tag di technorati
+Name[ja]=Technorati Tag
+Name[ka]=Technorati-ს ჭდეები
+Name[ko]=Technorati 태그
+Name[nb]=Technorati-tagger
+Name[nds]=Technorati-Themas
+Name[ne]=टेक्नोरती ट्याग
+Name[nl]=Technorati-tags
+Name[nn]=Technorati-taggar
+Name[pa]=Technorati ਟੈਗ
+Name[pl]=Znaczniki Technorati
+Name[pt]=Marcas do Technorati
+Name[pt_BR]=Tags do Technorati
+Name[ro]=Etichete Technorati
+Name[ru]=Статьи Technorati
+Name[rw]=Amatagi ya Technorati
+Name[se]=Technorati gilkorat
+Name[sr]=Technorati ознаке
+Name[sr@Latn]=Technorati oznake
+Name[sv]=Technorati-taggar
+Name[tg]=Тегҳои Technorati
+Name[uk]=Статті Technorati
+Name[vi]=Nhãn Technorati
+Name[wa]=Tags Technorati
+ServiceTypes=SearchProvider
+Keys=tags,tag,technoratitags
+Query=http://technorati.com/tag/\\{@}?sourceid=kde-search
+Query[ja]=http://technorati.com/tag/\\\\{@}?sourceid=kde-search
+Query[tg]=http://technorati.com/tag/\\{@}?sourceid=kde-ҷустуҷӯ
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop
new file mode 100644
index 000000000..f1c9576c0
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop
@@ -0,0 +1,63 @@
+[Desktop Entry]
+Type=Service
+Name=Merriam-Webster Thesaurus
+Name[ar]=قاموس مصطلحات Merriam-Webster
+Name[be]=Тэзаўрус Merriam-Webster
+Name[bn]=মেরিয়াম-ওয়েবস্টার থেসরাস
+Name[br]=Tezorus Merriam-Webster
+Name[ca]=Tesaurus Merriam-Webster
+Name[cs]=Slovník synonym Merriam-Webster
+Name[csb]=Merriam-Webster - słowôrz blëskòznacznrch słowów (thesaurus)
+Name[cy]=Thesawrws Merriam-Webster
+Name[da]=Merriam-Webster-begrebsordbog
+Name[el]=Θησαυρός λέξεων Merriam-Webster
+Name[eo]=Merriam - Webster-tezaŭro
+Name[es]=Sinónimos Merriam-Webster
+Name[et]=Merriam-Websteri tesaurus
+Name[eu]=Merriam-Webster thesaurus-a
+Name[fa]=فرهنگ جامع Merriam-Webster
+Name[fi]=Merriam-Webster-synonyymit
+Name[fr]=Thésaurus Merriam-Webster
+Name[ga]=Teasáras Merriam-Webster
+Name[he]=מילים נרדפות Merriam-Webster
+Name[hi]=मरियम-वेबस्टर शब्दकोश
+Name[hr]=Merriam-Webster rječnik sinonima
+Name[hu]=Merriam-Webster szinonimaszótár
+Name[is]=Merriam-Webster samheitaorðabók
+Name[it]=Dizionario dei sinonimi Merriam-Webster
+Name[kk]=Merriam-Webster тезаурусы
+Name[km]=កម្រង​វេវចន​សព្ទ Merriam-Webster
+Name[ko]=Merriam-Webster 시소러스
+Name[lv]=Merriam-Webster Enciklopēdija
+Name[mk]=Merriam-Webster Енциклопедија
+Name[mt]=Teżawru Merriam-Webster
+Name[nb]=Merrian-Webster Thesaurus
+Name[nds]=Merriam-Webster-Thesaurus
+Name[ne]=मेरियम-वेबस्टर पर्यायकोष
+Name[pa]=Merriam-ਵੈੱਬ ਥੀਸਾਰਸ ਕੋਸ਼
+Name[pl]=Merriam-Webster - słownik wyrazów bliskoznacznych
+Name[pt]=Merriam-Gramática do Webster
+Name[ro]=Dicționarul Merriam-Webster
+Name[ru]=Тезаурус Merriam-Webster
+Name[rw]=Impuzansobanuro Merriam-Webster
+Name[sk]=Merriam-Webster Synonymá
+Name[sl]=Merriam-Websterjev tezaver
+Name[sr]=Речник синонима Меријам-Вебстер
+Name[sr@Latn]=Rečnik sinonima Merijam-Vebster
+Name[sv]=Merriam-Websters synonymlexikon
+Name[ta]=மெர்ரியம்-வெப்ஸ்டர் சொற்களஞ்சியம்
+Name[tg]=Тезауруси Merriam-Webster
+Name[th]=พจนานุกรมคำพ้องเมอเรียม-เว็บสเตอร์
+Name[tt]=Merriam-Webster Süznämäse
+Name[uk]=Словник синонімів Merriam-Webster
+Name[uz]=Merriam-Vebster lugʻati
+Name[uz@cyrillic]=Мерриам-Вебстер луғати
+Name[vi]=Từ điển đồng nghĩa Merriam-Webster
+Name[wa]=Diccionaire inglès Merriam-Webster
+Name[zh_CN]=韦氏辞典
+Name[zh_TW]=韋氏辭典
+Name[zu]=Incawdi yamagama afanayo ye-Merriam-Webster
+ServiceTypes=SearchProvider
+Keys=ths,thesaurus
+Query=http://www.m-w.com/cgi-bin/thesaurus?book=Thesaurus&va=\\{@}
+Query[ne]=http://www.m-w.com/cgi-bin/thesaurus?book=Thesaurusva=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/tvtome.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/tvtome.desktop
new file mode 100644
index 000000000..a24f74287
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/tvtome.desktop
@@ -0,0 +1,24 @@
+[Desktop Entry]
+Charset=utf8
+Keys=tvtome
+Name=TV Tome
+Name[be]=Хатняе ТБ
+Name[bn]=টিভি টোম
+Name[da]=TV-Tome
+Name[eu]=TV toma
+Name[nb]=Stor TV
+Name[ne]=टीभी टोम
+Name[nn]=Stor TV
+Name[rw]=Igice TV
+Name[sv]=TV-tome
+Name[te]=టివి టొమ్
+Name[tg]=Томи левизиони Хона
+Name[th]=ทีวีทอร์ม
+Name[tr]=TV Kanalları
+Name[vi]=Tra Quyển TV
+ServiceTypes=SearchProvider
+Query=http://www.tv.com/search.php?type=11&stype=all&qs=\\{@}&x=0&y=0
+Query[ja]=http://www.tv.com/search.php?type=11&stype=all&qs=\\\\{@}&x=0&y=0
+Query[ne]=http://www.tv.com/search.php?type=11stype=all&qs=\\{@}&x=0&y=0
+Query[tg]=http://www.tv.com/search.php?type=11&stype=ҳама&qs=\\{@}&x=0&y=0
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/uspto.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/uspto.desktop
new file mode 100644
index 000000000..6bed5bc9b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/uspto.desktop
@@ -0,0 +1,74 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=uspto
+Name=U.S. Patent Database
+Name[af]=Amerikaanse Patente Databasis
+Name[ar]=قاعدة البيانات U.S. Patent Database
+Name[be]=База звестак аб патэнтах ЗША
+Name[bn]=মার্কিন পেটেন্ট ডেটাবেস
+Name[bs]=SAD baza patenata
+Name[ca]=Base de dades de patents U.S.
+Name[cs]=Patentová databáze USA
+Name[csb]=Baza patentów USA
+Name[da]=U.S. Patent-database
+Name[de]=U.S.-Patentdatenbank
+Name[eo]=U.S. Rajtaj datumbazoj
+Name[es]=Base de datos de patentes de EEUU
+Name[et]=USA patentide andmebaas
+Name[eu]=EEBB patente datu-basea
+Name[fa]=دادگان امتیاز امریکایی
+Name[fi]=Yhdysvaltojen patenttitietokanta
+Name[fr]=Base de données des brevets aux U.S.A
+Name[fy]=U.S. Patent-database
+Name[gl]=Base de Datos de Patentes dos E.E.U.U
+Name[he]=מסד הפטנטים של ארה"ב
+Name[hi]=यूएस पेटेन्ट डाटाबेस
+Name[hr]=Američka patentna baza podataka
+Name[hu]=Amerikai szabadalmi adatbázis
+Name[id]=Basisdata Paten Amerika Serikat
+Name[is]=Gagnagrunnur einkaleyfisstofu Bandaríkjana
+Name[it]=Database brevetti U.S.A.
+Name[ja]=米国特許データベース
+Name[ka]=აშშ პატენტების მონაცემთა ბაზა
+Name[kk]=АҚШ патенттер қоры
+Name[km]=មូលដ្ឋាន​ទិន្នន័យ​ប៉ាតង់​សហរដ្ឋ​អាមេរិក
+Name[ko]=미국 특허 데이터베이스
+Name[lt]=JAV patentų duomenų bazė
+Name[lv]=ASV patentu datubāze
+Name[mk]=База со патенти во САД
+Name[ms]=Pangkalan Data Paten A.S.
+Name[nb]=US patentdatabase
+Name[nds]=Datenbank mit de Patenten vun de USA
+Name[ne]=यूएस प्याटेन्ट डेटाबेस
+Name[nl]=U.S. Patent-database
+Name[nn]=US patentdatabase
+Name[pa]=U.S. Patent ਡਾਟਾਬੇਸ
+Name[pl]=Baza patentów USA
+Name[pt]=Base de Dados de Patentes dos EUA
+Name[pt_BR]=Base de dados de patentes dos EUA
+Name[ro]=Baza de date de patente S.U.A.
+Name[ru]=База патентов США
+Name[rw]=Ububikoshingiro Ipatanti bwa Leta Zunze Ubumwa z'Amerika
+Name[se]=Amerihká patenta diehtovuođđu
+Name[sk]=U.S. patentová databáza
+Name[sl]=Zbirka patentov U.S. Patent Database
+Name[sr]=База патената САД
+Name[sr@Latn]=Baza patenata SAD
+Name[sv]=Förenta staternas patentdatabas
+Name[ta]=U.S.காப்புரிமை தரவுதளம்
+Name[te]=యూఎస్ పెటెంట్ డాటాబేస్
+Name[tg]=Патенти базаи маълумотҳои Иолоти Муттаҳида
+Name[th]=ฐานข้อมูลสิทธิบัตรของสหรัฐอเมริกาฯ
+Name[tr]=U.S. Patent Veritabanı
+Name[tt]=AQŞ Patentlar Tuplaması
+Name[uk]=База даних патентів в США
+Name[uz]=AQSH patent maʼlumot bazasi
+Name[uz@cyrillic]=АҚШ патент маълумот базаси
+Name[vi]=Cơ sở dữ liệu Bằng sáng chế Hoa Kỳ
+Name[wa]=Båze di dnêyes des brevets U.S.
+Name[zh_CN]=美国专利数据库
+Name[zh_TW]=U.S. 專利權資料庫
+Query=http://patft.uspto.gov/netacgi/nph-Parser?TERM1=\\{@}&Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=0&f=S&l=50
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop
new file mode 100644
index 000000000..4fb6d0551
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Type=Service
+Name=Vivisimo
+Name[bn]=ভিভিসিমো
+Name[hi]=विविसिमो
+Name[ka]=ვივისიმო
+Name[ne]=भिभिसिमो
+Name[pa]=ਵੀਵੀਸੀਮੋ
+Name[ta]=விவிசிமோ
+Name[te]=వివిస్మొ
+Name[vi]=Tra Vivisimo
+ServiceTypes=SearchProvider
+Keys=vi
+Query=http://vivisimo.com/search?query=\\{@}&se=Yahoo%2CAltaVista%2CMSN%2CFast%2COD%2CExcite%2CDirectHit%2CLooksmart%2CEuroseek&x=49&y=16
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/voila.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/voila.desktop
new file mode 100644
index 000000000..034213e7b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/voila.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Type=Service
+Name=Voila
+Name[bn]=ভয়লা
+Name[hi]=वाइला
+Name[ne]=भोइला
+Name[pa]=ਵੋਈਲਾ
+Name[ta]=வாய்லா
+Name[te]=వొయిలా
+Name[th]=เวยลา
+Name[vi]=Tra Voila
+Name[wa]=Voilà
+ServiceTypes=SearchProvider
+Keys=voila
+Query=http://search.ke.voila.fr/S/voila?lg=fr&profil=geeks&rtype=kw&bhv=web_mondial&rdata=\\{@}
+Query[ja]=http://search.ke.voila.fr/S/voila?lg=fr&profil=geeks&rtype=kw&bhv=web_mondial&rdata=\\\\{@}
+Query[sk]=http://search.ke.voila.fr/S/voila?lg=fr&profil=geeks&rtype=kw&bhv=web_mondial&rdata=\\{@
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/webster.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/webster.desktop
new file mode 100644
index 000000000..bcb5fe583
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/webster.desktop
@@ -0,0 +1,73 @@
+[Desktop Entry]
+Type=Service
+Name=Merriam-Webster Dictionary
+Name[af]=Merriam-Webster Woordeboek
+Name[ar]=قاموس Merriam-Webster
+Name[az]=Merriam-Webster Sözlüyü
+Name[be]=Слоўнік Merriam-Webster
+Name[bn]=মেরিয়াম-ওয়েবস্টার অভিধান
+Name[br]=Geriaoueg Merriam-Webster
+Name[bs]=Merriam-Webster rječnik
+Name[ca]=Diccionari Merriam-Webster
+Name[cs]=Slovník Merriam-Webster
+Name[csb]=Merriam-Webster - słowôrz
+Name[cy]=Geiriadur Merriam-Webster
+Name[da]=Merriam-Webster-ordbog
+Name[de]=Merriam-Webster-Dictionary
+Name[el]=Λεξικό Merriam-Webster
+Name[eo]=Merriam - Webster-vortaro
+Name[es]=Diccionario Merriam-Webster
+Name[et]=Merriam-Websteri sõnaraamat
+Name[eu]=Merriam-Webster hiztegia
+Name[fa]=واژه‌نامۀ Merriam-Webster
+Name[fi]=Merriam-Webster-sanakirja
+Name[fr]=Dictionnaire Merriam-Webster
+Name[ga]=Foclóir Merriam-Webster
+Name[hi]=मरियम-वेबस्टर शब्दकोश
+Name[hr]=Merriam-Webster rječnik
+Name[hu]=Merriam-Webster szótár
+Name[is]=Merriam-Webster orðabókin
+Name[it]=Dizionario Merriam-Webster
+Name[ka]=Словарь Merriam-Webster
+Name[kk]=Merriam-Webster сөздігі
+Name[km]=វចនានុក្រម Merriam-Webster
+Name[ko]=Merriam-Webster 사전
+Name[lv]=Merriam-Webster Vārdnīca
+Name[mk]=Merriam-Webster Речник
+Name[mt]=Dizzjunarju Merriam-Webster
+Name[nds]=Merriam-Webster-Wöörbook
+Name[ne]=मेरियम-वेबस्टर शब्दकोश
+Name[nso]=Pukuntsu ya Merriam-Webster
+Name[pa]=Merriam-ਵੈਬਸਟੀਰ ਸ਼ਬਦ-ਕੋਸ਼
+Name[pl]=Merriam-Webster - słownik
+Name[pt]=Merriam-Dicionário do Webster
+Name[pt_BR]=Dicionário Merriam-Webster
+Name[ro]=Dicționarul Merriam-Webster
+Name[ru]=Словарь Merriam-Webster
+Name[rw]=Inkoranyamagambo Merriam-Webster
+Name[sk]=Slovník Merriam-Webster
+Name[sl]=Slovar Merriam-Webster
+Name[sr]=Речник Меријам-Вебстер
+Name[sr@Latn]=Rečnik Merijam-Vebster
+Name[ss]=Sichazimagama se Merriam-Webster
+Name[sv]=Merriam-Websters ordlexikon
+Name[ta]=மெர்ரியம்-வெப்ஸ்டர் அகராதி
+Name[te]=మెర్రియం-వెబ్స్టర్ నిఘంటువు
+Name[tg]=Луғати Merriam-Webster
+Name[th]=พจนานุกรมเมอร์เรียม-เว็บสเตอร์
+Name[tr]=Merriam-Webster Sözlüğü
+Name[tt]=Merriam-Webster Süzlege
+Name[uk]=Словник Merriam-Webster
+Name[uz]=Merriam-Webster lugʻati
+Name[uz@cyrillic]=Merriam-Webster луғати
+Name[ven]=Bugu ya Thalutshedza maipfi ya Merrian-Webster
+Name[vi]=Từ điển Merriam-Webster
+Name[wa]=Diccionaire inglès Merriam-Webster
+Name[xh]= Dikshinari ye Merriam-Webster
+Name[zh_CN]=韦氏词典
+Name[zh_TW]=韋氏詞典
+Name[zu]=Isichazamagama se-Merriam-Webster
+ServiceTypes=SearchProvider
+Keys=dict,webster
+Query=http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=\\{@}
+Query[ne]=http://www.m-w.com/cgi-bin/dictionary?book=Dictionaryva=\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/whatis.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/whatis.desktop
new file mode 100644
index 000000000..1cf117c27
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/whatis.desktop
@@ -0,0 +1,71 @@
+[Desktop Entry]
+Type=Service
+Name=Whatis Query
+Name[af]=Whatis navraag
+Name[az]=Whatis Sorğusu
+Name[be]=Запыт Whatis
+Name[bn]=Whatis জিজ্ঞাসা
+Name[br]=Klask Whatis
+Name[bs]=Whatis upit
+Name[ca]=Consulta Whatis
+Name[cs]=Dotaz 'Co je?'
+Name[csb]=Whatis - infòrmaticznô baza wiedzbë
+Name[cy]=Ymholiad Beth-yw-Hwn
+Name[da]=Whatis-forespørgsel
+Name[de]=Whatis-Abfrage
+Name[el]=Ερώτηση Whatis
+Name[eo]=Kio-estas-demando
+Name[es]=Consulta Whatis
+Name[et]=Whatis päring
+Name[eu]=Whatis bilaketa
+Name[fa]=پرس‌وجوی Whatis
+Name[fi]=Whatis-haku
+Name[fr]=Requête whatis
+Name[ga]=Iarratas Whatis
+Name[gl]=Pergunta a Whatis
+Name[he]=שאילתת Whatis
+Name[hi]=व्हाट-इज़ क्वेरी
+Name[hr]=Whatis propitivanje
+Name[hu]=Whatis-lekérdezés
+Name[is]=Whatis fyrirspurn
+Name[it]=Richiesta whatis
+Name[ja]=Whatis 検索
+Name[ka]=მოთხოვნა - რა არის
+Name[kk]=Whatis сұранысы
+Name[km]=សំណួរ Whatis
+Name[lt]=Whatis užklausa
+Name[lv]=Whatis pieprasījums
+Name[mk]=Whatis прашалник
+Name[ms]=WPertanyaan Apa itu
+Name[mt]=Tfittxija Whatis
+Name[nb]=Forespørsel i databasen «Whatis»
+Name[nds]=Whatis-Anfraag
+Name[ne]=Whatis क्वेरी
+Name[nn]=Whatis-oppslag
+Name[pa]=ਇਹ ਕੀ ਸਵਾਲ
+Name[pl]=Whatis - informatyczna baza wiedzy
+Name[pt]=Pesquisa 'O Que é Isto?'
+Name[pt_BR]=Busca Whatis
+Name[ro]=Interogare "Ce înseamnă asta"
+Name[ru]=Запрос whatis
+Name[rw]=Ikibazo ni iki
+Name[se]=Whatis-jearaldat
+Name[sk]=Otázka "Čo to je?"
+Name[sl]=Poizvedba Whatis
+Name[sr]=Whatis упит
+Name[sr@Latn]=Whatis upit
+Name[sv]=Vad är det här-fråga
+Name[ta]=கேள்வி என்றால் என்ன
+Name[tg]=Ҷустуҷӯъ чист
+Name[th]=การค้นหา Whatis
+Name[tr]=Nedir Sorgusu
+Name[tt]=Whatis Sorawı
+Name[uk]=Запит "Що це"
+Name[vi]=Hỏi Whatis
+Name[wa]=Cweraedje Whatis
+Name[zh_CN]=Whatis 查询
+Name[zh_TW]=Whatis 查詢
+ServiceTypes=SearchProvider
+Keys=wi,whatis
+Query=http://whatis.techtarget.com/wsearchResults/1,290214,,00.html?query=\\{@}
+Query[ja]=http://whatis.techtarget.com/wsearchResults/1,290214,,00.html?query=\\\\{@}
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/wikipedia.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/wikipedia.desktop
new file mode 100644
index 000000000..5bc56d83e
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/wikipedia.desktop
@@ -0,0 +1,94 @@
+[Desktop Entry]
+Type=Service
+Name=Wikipedia - The Free Encyclopedia
+Name[af]=Wikipedia - Die gratis ensiklopidie
+Name[ar]=الموسوعة الحرّة Wikipedia
+Name[az]=Wikipedia - Pulsuz Ensiklopediya
+Name[be]=Wikipedia - Свабодная Энцыклапедыя
+Name[bn]=উইকিপেডিয়া - মুক্ত বিশ্বকোষ
+Name[br]=Wikipedia - Ar geriadur ouiziegezh frank
+Name[bs]=Wikipedia - Slobodna enciklopedija
+Name[ca]=Viquipèdia - L'enciclopèdia lliure
+Name[cs]=Wikipedia - volně dostupná encyklopedie
+Name[csb]=Wikipedijô - wòlnô encyklopedijô
+Name[cy]=Wikipedia - Y Gwyddoniadur Rhydd
+Name[da]=Wikipedia - Det frie leksikon
+Name[de]=Wikipedia - Die freie Enzyklopädie
+Name[el]=Wikipedia - Η ελεύθερη εγκυκλοπαίδεια
+Name[eo]=Vikipedio - la libera enciklopedio
+Name[es]=Wikipedia - La enciclopedia libre
+Name[et]=Wikipedia - Vaba entsüklopeedia
+Name[eu]=Wikipedia - Entziklopedia librea
+Name[fa]=Wikipedia - دایره‌المعارف آزاد
+Name[fi]=Wikipedia - Vapaa tietosanakirja
+Name[fr]=Wikipedia - L'encyclopédie libre
+Name[fy]=Wikipedia - de frije ensyklopedy
+Name[ga]=Wikipedia - An Chiclipéid Shaor
+Name[gl]=Wikipedia - A Enciclopédia Libre
+Name[he]=וויקיפדיה - האנציקלופדיה החופשית
+Name[hi]=विकिपेडिया- मुफ्त विश्वकोश
+Name[hr]=Wikipedia - besplatna enciklopedija
+Name[hu]=Wikipedia
+Name[is]=Wikipedia - Frjálst alfræðiorðasafn
+Name[it]=Wikipedia - L'enciclopedia libera
+Name[ja]=Wikipedia - フリーな百科事典
+Name[ka]=ვიკიპედია - ღია ენციკლოპედია
+Name[kk]=Wikipedia - ашық энциклопедия
+Name[km]=Wikipedia - សព្វវចនាធិប្បាយ​ឥត​គិត​ថ្លៃ
+Name[ko]=위키백과 - 우리 모두의 백과사전
+Name[lt]=Wikipedia - laisva enciklopedija
+Name[lv]=Wikipedia - Brīvā enciklopēdija
+Name[mk]=Википедија - Слободната енциклопедија
+Name[mn]=Wikipedia - Чөлөөт толь бичиг
+Name[ms]=Wikipedia - Ensiklopedia Percuma
+Name[mt]=Wikipedia - L-Enċiklopedija Ħielsa
+Name[nb]=Wikipedia – det frie leksikonet
+Name[nds]=Wikipedia - dat fre'e Nakieksel
+Name[ne]=विकिपिडिया - नि: शुल्क इन्साइक्लोपेडिया
+Name[nl]=Wikipedia - de vrije encyclopedie
+Name[nn]=Wikipedia – det frie leksikonet
+Name[pa]=ਵਿੱਕੀਪੀਡਿਆ - ਮੁਫਤ ਵਿਸ਼ਵਕੋਸ਼
+Name[pl]=Wikipedia - otwarta encyklopedia
+Name[pt]=Wikipedia - A Enciclopédia Livre
+Name[pt_BR]=Wikipedia - A Enciclopédia Livre
+Name[ro]=Wikipedia - Enciclopedia liberă
+Name[ru]=Wikipedia - свободная энциклопедия
+Name[rw]=Wikipedia - Inkoranya y'Ubuntu
+Name[se]=Wikipedia – fridja leksikona
+Name[sk]=Wikipedia - voľne dostupná encyklopédia
+Name[sl]=Wikipedia - Prosta enciklopedija
+Name[sr]=Wikipedia — слободна енциклопедија
+Name[sr@Latn]=Wikipedia — slobodna enciklopedija
+Name[sv]=Wikipedia - den fria encyklopedin
+Name[ta]=விகிபிடியா - இலவச கலைக்களஞ்சியம்
+Name[te]=వికీపీడియా - స్వేఛ్ఛా విజ్ఞాన సర్వస్వము
+Name[tg]=Wikipedia - Энсиклопедияи озод
+Name[th]=วิกิพีเดีย - สารานุกรมฟรี
+Name[tr]=Wikipedia - Ücretsiz Ansiklopedi
+Name[tt]=Wikipedia - Buşlay Ensiklopedia
+Name[uk]=Wikipedia - вільна енциклопедія
+Name[uz]=Wikipedia - Erkin ensiklopediya
+Name[uz@cyrillic]=Wikipedia - Эркин энциклопедия
+Name[vi]=Wikipedia - Bách khoa toàn thư mở
+Name[wa]=Wikipedia - Li libe eciclopedeye (walon)
+Name[zh_CN]=维基百科 - 免费的百科全书
+Name[zh_TW]=Wikipedia - 免費的 Encyclopedia
+ServiceTypes=SearchProvider
+Keys=wp
+Query=http://en.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[de]=http://de.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[fi]=http://fi.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[fr]=http://fr.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[fy]=http://fy.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[it]=http://it.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[ko]=http://ko.wikipedia.org/wiki/Special:Search?search=\\{@}&go=Go
+Query[nb]=http://no.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[ne]=http://en.wikipedia.org/wiki/Special:Search?search=\{@}go=Go
+Query[nl]=http://nl.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[pa]=http://en.wikipedia.org/wiki/Special:Search?search=\{@}&go=ਜਾਓ
+Query[pl]=http://pl.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[tt]=http://tt.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[vi]=http://vi.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[wa]=http://wa.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[zh_CN]=http://zh.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop
new file mode 100644
index 000000000..f4dfa192d
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop
@@ -0,0 +1,85 @@
+[Desktop Entry]
+Type=Service
+Name=Wiktionary - The Free Dictionary
+Name[af]=Wiktionary - Die gratis woordeboek
+Name[ar]=القاموس المجاني Wiktionary
+Name[be]=Wiktionary - Свабодны Слоўнік
+Name[bn]=ইউক্‌শনারি - মুক্ত অভিধান
+Name[br]=Wiktionary - Ar geriadur frank
+Name[bs]=Wiktionary - Slobodni rječnik
+Name[ca]=Viccionari - El diccionari lliure
+Name[cs]=Wiktionary - volně dostupný slovník
+Name[csb]=Wiktionary - wòlny słowôrz
+Name[da]=Wiktionary - Den frie ordbog
+Name[de]=Wiktionary - Das freie Wörterbuch
+Name[el]=Wiktionary - Το ελεύθερο λεξικό
+Name[eo]=Vikivortaro - la libera vortaro
+Name[es]=Wikitionary - El diccionario libre
+Name[et]=Wiktionary - Vaba sõnaraamat
+Name[eu]=Wiktionary - Hiztegi librea
+Name[fa]=Wiktionary - واژه‌نامۀ آزاد
+Name[fi]=Wiktionary - Vapaa sanakirja
+Name[fr]=Wiktionary - Le dictionnaire libre
+Name[fy]=Wiktionary - It frije wurdboek
+Name[ga]=Wiktionary - An Foclóir Saor
+Name[gl]=Wiktionary - O dicionario libre
+Name[he]=וויקימילון - המילון החופשי
+Name[hr]=Wiktionary - besplatna enciklopedija
+Name[hu]=Wiktionary
+Name[is]=Wiktionary - Frjálsa orðabókin
+Name[ja]=Wictionary - フリーな辞書
+Name[ka]=Wiktionary - თავისუფალი ლექსიკონი
+Name[kk]=Wiktionary - ашық сөздік
+Name[km]=Wikipedia - វចនានុក្រម​ឥតគិតថ្លៃ
+Name[ko]=위키낱말사전
+Name[lt]=Wiktionary - laisvasis žodynas
+Name[mk]=Wiktionary - Слободниот речник
+Name[nb]=Wiktionary – den frie ordboka
+Name[nds]=Wiktionary - dat fre'e Wöörbook (engl.)
+Name[ne]=विक्सनरी - नि: शुल्क शब्दकोश
+Name[nl]=Wiktionary - het vrije woordenboek
+Name[nn]=Wikipedia – det frie oppslagsverket
+Name[pa]=ਵਿੱਕੀਸ਼ਨਰੀ - ਮੁਫਤ ਸ਼ਬਦ-ਕੋਸ਼
+Name[pl]=Wiktionary - Otwarty słownik
+Name[pt]=Wiktionary - O Dicionário Livre
+Name[pt_BR]=Wiktionary - O Dicionário Livre
+Name[ro]=Wiktionary - Dictionarul liber
+Name[ru]=Wiktionary - свободный словарь
+Name[se]=Wiktinary – fridja sátnegirji
+Name[sk]=Wiktionary = voľne dostupný slovník
+Name[sl]=Wiktionary - Prosti slovar
+Name[sr]=Wiktionary — слободан речник
+Name[sr@Latn]=Wiktionary — slobodan rečnik
+Name[sv]=Wiktionary - den fria ordboken
+Name[te]=విక్షనరి - స్వేఛ్ఛా పదకోశము
+Name[tg]=Wiktionary - Энсиклопедияи озод
+Name[th]=วิกิชันนารี - พจนานุุกรมฟรี
+Name[tr]=Wiktionary - Ücretsiz Ansiklopedi
+Name[tt]=Wiktionary - Buşlay Süzlek
+Name[uk]=Wiktionary - вільний словник
+Name[uz]=Wiktionary - Erkin lugʻat
+Name[uz@cyrillic]=Wiktionary - Эркин луғат
+Name[vi]=Wiktionary - Từ điển mở
+Name[wa]=Wikitionary - Li libe motî (inglès)
+Name[zh_CN]=维基字典 - 免费的字典
+Name[zh_TW]=Wiktionary - 免費的字典
+ServiceTypes=SearchProvider
+Keys=wt,wikt
+Query=http://en.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[csb]=http://pl.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[eo]=http://eo.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[fr]=http://fr.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[fy]=http://fy.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[he]=http://he.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[ko]=http://ko.wiktionary.org/wiki/Special:Search?search=\\{@}&go=Go
+Query[nb]=http://no.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[ne]=http://en.wiktionary.org/wiki/Special:Search?search=\{@}go=Go
+Query[nl]=http://nl.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[nn]=http://en.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[pa]=http://en.wiktionary.org/wiki/Special:Search?search=\{@}&go=ਜਾਓ
+Query[pl]=http://pl.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[tg]=http://en.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[th]=http://en.wikipedia.org/wiki/Special:Search?search=\{@}&go=Go
+Query[tt]=http://tt.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Query[zh_CN]=http://zh.wiktionary.org/wiki/Special:Search?search=\{@}&go=Go
+Charset=utf8
diff --git a/kcontrol/ebrowsing/plugins/ikws/searchproviders/wordref.desktop b/kcontrol/ebrowsing/plugins/ikws/searchproviders/wordref.desktop
new file mode 100644
index 000000000..2a3d70523
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/ikws/searchproviders/wordref.desktop
@@ -0,0 +1,78 @@
+[Desktop Entry]
+Charset=
+Hidden=false
+Keys=wordref
+Name=WordReference.com English Dictionary
+Name[af]=WordReference.com Engelse Woordeboek
+Name[ar]=القاموس الإنجليزي من WordReference.com
+Name[az]=WordReference.com İngiliscə Lüğət
+Name[be]=WordReference.com Ангельскі слоўнік
+Name[bn]=WordReference.com ইংরাজি অভিধান
+Name[br]=Geriaoueg saozneg WordReference.com
+Name[bs]=WordReference.com Engleski rječnik
+Name[ca]=WordReference.com diccionari anglès
+Name[cs]=Anglický slovník WordReference.com
+Name[csb]=WordReference.com: anielsczi słowôrz
+Name[cy]=Geiriadur Saesneg WorldReference.com
+Name[da]=WordReference.com engelsk ordbog
+Name[de]=WordReference.com: Englischwörterbuch
+Name[el]=WordReference.com αγγλικό λεξικό
+Name[eo]=WordReference.com angla vortaro
+Name[es]=WordReference.com diccionario de inglés
+Name[et]=WordReference.com inglise keele sõnaraamat
+Name[eu]=WordReference.com Itzulpena: Ingeles hiztegia
+Name[fa]=واژه‌نامۀ انگلیسی WordReference.com
+Name[fi]=WordReference.comin englannin kielen sanasto
+Name[fr]=Dictionnaire anglais de WordReference.com
+Name[fy]=WordReference.com Ingelsk wurdboek
+Name[ga]=Foclóir Béarla WordReference.com
+Name[gl]=WordReference.com Dicionario de Inglés
+Name[he]=WordReference.com - מילון אנגלי
+Name[hi]=वर्डरेफ़रेंस.कॉम अंग्रेज़ी शब्दकोश
+Name[hr]=WordReference.com engleski rječnik
+Name[hu]=WordReference.com angol szótár
+Name[is]=WordReference.com ensk orðabók
+Name[it]=WordReference.com dizionario inglese
+Name[ja]=WordReference.com 英語辞書
+Name[kk]=WordReference.com ағылшын сөздігі
+Name[km]=វចនានុក្រម​អង់គ្លេស WordReference.com
+Name[ko]=WordReference.com 영어 사전
+Name[lt]=WordReference.com anglų kalbos žodynas
+Name[lv]=WordReference.com Angļu valodas vārdnīca
+Name[mk]=WordReference.com Англиски речник
+Name[mn]=WordReference.com Англи толь бичиг
+Name[mt]=WordReference.com Dizzjunarju Ingliż
+Name[nb]=WordReference.com, engelsk ordbok
+Name[nds]=WordReference.com Engelsch Nakieksel
+Name[ne]=WordReference.com अङ्ग्रेजी शब्दकोश
+Name[nl]=WordReference.com Engels woordenboek
+Name[nn]=WordReference.com engelsk ordbok
+Name[pa]=WordReference.com ਅੰਗਰੇਜ਼ੀ ਸ਼ਬਦ-ਕੋਸ਼
+Name[pl]=WordReference.com: słownik angielski
+Name[pt]=Dicionário Inglês WordReference.com
+Name[pt_BR]=Dicionário de Inglês WordReference.com
+Name[ro]=Dicționarul englez WordReference.com
+Name[ru]=Английский словарь WordReference.com
+Name[rw]=Inkoranyamagambo y'Icyongereza WordReference.com
+Name[se]=WordReference.com eŋgelaš sátnegirji
+Name[sk]=Anglický slovník WordReference.com
+Name[sl]=Angleški slovar WordReference.com
+Name[sr]=Енглески речник на WordReference.com
+Name[sr@Latn]=Engleski rečnik na WordReference.com
+Name[sv]=Wordreference.com engelsk ordbok
+Name[ta]=WordReference.com ஆங்கில அகராதி
+Name[te]=WordReference.com ఆంగ్ల నిఘంటువు
+Name[tg]=WordReference.com Луғати Англисӣ
+Name[th]=WordReference.com พจนานุกรมอังกฤษ
+Name[tr]=WordReference.com İngilizce Sözlük
+Name[tt]=WordReference.com: İngliz Süzlege
+Name[uk]=Англійський словник WordReference.com
+Name[uz]=WordReference.com Inglizcha lugʻat
+Name[uz@cyrillic]=WordReference.com Инглизча луғат
+Name[vi]=Từ điển tiếng Anh WordReference.com
+Name[wa]=WordReference.com diccionaire inglès
+Name[zh_CN]=WordReference.com 英语字典
+Name[zh_TW]=WordReference.com 英文字典
+Query=http://www.wordreference.com/english/definition.asp?en=\\{@}
+ServiceTypes=SearchProvider
+Type=Service
diff --git a/kcontrol/ebrowsing/plugins/localdomain/Makefile.am b/kcontrol/ebrowsing/plugins/localdomain/Makefile.am
new file mode 100644
index 000000000..cb524dd4b
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/localdomain/Makefile.am
@@ -0,0 +1,20 @@
+## Makefile.am of kdebase/kcontrol/ebrowsing/plugins/localdomain
+
+AM_CPPFLAGS = $(all_includes) -DQT_NO_CAST_ASCII
+
+kde_module_LTLIBRARIES = liblocaldomainurifilter.la
+
+liblocaldomainurifilter_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+liblocaldomainurifilter_la_LIBADD = $(LIB_KIO) $(LIB_KDEUI) $(LIB_KDECORE)
+
+liblocaldomainurifilter_la_SOURCES = localdomainurifilter.cpp localdomainurifilter.skel
+
+service_DATA = localdomainurifilter.desktop
+servicedir = $(kde_servicesdir)
+
+METASOURCES = AUTO
+
+bin_PROGRAMS = klocaldomainurifilterhelper
+
+klocaldomainurifilterhelper_SOURCES = klocaldomainurifilterhelper.c
+klocaldomainurifilterhelper_LDADD = $(LIBSOCKET)
diff --git a/kcontrol/ebrowsing/plugins/localdomain/klocaldomainurifilterhelper.c b/kcontrol/ebrowsing/plugins/localdomain/klocaldomainurifilterhelper.c
new file mode 100644
index 000000000..2f61d6824
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/localdomain/klocaldomainurifilterhelper.c
@@ -0,0 +1,60 @@
+/*
+ kshorturifilterhelper.cpp
+
+ This file is part of the KDE project
+ Copyright (C) 2002 Lubos Lunak <llunak@suse.cz>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/* Helper for localdomainurifilter for finding out if a host exist */
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+#include <netdb.h>
+#include <stdio.h>
+#include <string.h>
+
+int main( int argc, char* argv[] )
+{
+ struct hostent* ent;
+
+ if( argc != 2 )
+ return 2;
+
+ ent = gethostbyname( argv[ 1 ] );
+ if (ent)
+ {
+ int i;
+ int found = 0;
+ /* try to find the same fully qualified name first */
+ for( i = 0;
+ ent->h_aliases[ i ] != NULL;
+ ++i )
+ {
+ if( strncmp( argv[ 1 ], ent->h_aliases[ i ], strlen( argv[ 1 ] )) == 0 )
+ {
+ found = 1;
+ fputs( ent->h_aliases[ i ], stdout );
+ break;
+ }
+ }
+ if( !found )
+ fputs( ent->h_name, stdout );
+ }
+
+ return (ent != NULL || h_errno == NO_ADDRESS) ? 0 : 1;
+}
diff --git a/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.cpp b/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.cpp
new file mode 100644
index 000000000..3bd247729
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.cpp
@@ -0,0 +1,117 @@
+/*
+ localdomainfilter.cpp
+
+ This file is part of the KDE project
+ Copyright (C) 2002 Lubos Lunak <llunak@suse.cz>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#include "localdomainurifilter.h"
+
+#include <kprocess.h>
+#include <kstandarddirs.h>
+#include <kdebug.h>
+
+#include <qregexp.h>
+#include <qfile.h>
+
+#define HOSTPORT_PATTERN "[a-zA-Z0-9][a-zA-Z0-9+-]*(?:\\:[0-9]{1,5})?(?:/[\\w:@&=+$,-.!~*'()]*)*"
+
+/**
+ * IMPORTANT: If you change anything here, please run the regression test
+ * kdelibs/kio/tests/kurifiltertest
+ */
+
+LocalDomainURIFilter::LocalDomainURIFilter( QObject *parent, const char *name,
+ const QStringList & /*args*/ )
+ : KURIFilterPlugin( parent, name ? name : "localdomainurifilter", 1.0 ),
+ DCOPObject( "LocalDomainURIFilterIface" ),
+ last_time( 0 ),
+ m_hostPortPattern( QString::fromLatin1(HOSTPORT_PATTERN) )
+{
+ configure();
+}
+
+bool LocalDomainURIFilter::filterURI( KURIFilterData& data ) const
+{
+ KURL url = data.uri();
+ QString cmd = url.url();
+
+ kdDebug() << "LocalDomainURIFilter::filterURI: " << url << endl;
+
+ if( m_hostPortPattern.exactMatch( cmd ) &&
+ isLocalDomainHost( cmd ) )
+ {
+ cmd.prepend( QString::fromLatin1("http://") );
+ setFilteredURI( data, KURL( cmd ) );
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+
+ kdDebug() << "FilteredURI: " << data.uri() << endl;
+ return true;
+ }
+
+ return false;
+}
+
+// if it's e.g. just 'www', try if it's a hostname in the local search domain
+bool LocalDomainURIFilter::isLocalDomainHost( QString& cmd ) const
+{
+ // find() returns -1 when no match -> left()/truncate() are noops then
+ QString host( cmd.left( cmd.find( '/' ) ) );
+ host.truncate( host.find( ':' ) ); // Remove port number
+
+ if( !(host == last_host && last_time > time( NULL ) - 5 ) ) {
+
+ QString helper = KStandardDirs::findExe(QString::fromLatin1( "klocaldomainurifilterhelper" ));
+ if( helper.isEmpty())
+ return last_result = false;
+
+ m_fullname = QString::null;
+
+ KProcess proc;
+ proc << helper << host;
+ connect( &proc, SIGNAL(receivedStdout(KProcess *, char *, int)),
+ SLOT(receiveOutput(KProcess *, char *, int)) );
+ if( !proc.start( KProcess::NotifyOnExit, KProcess::Stdout ))
+ return last_result = false;
+
+ last_host = host;
+ last_time = time( (time_t *)0 );
+
+ last_result = proc.wait( 1 ) && proc.normalExit() && !proc.exitStatus();
+
+ if( !m_fullname.isEmpty() )
+ cmd.replace( 0, host.length(), m_fullname );
+ }
+
+ return last_result;
+}
+
+void LocalDomainURIFilter::receiveOutput( KProcess *, char *buf, int )
+{
+ m_fullname = QFile::decodeName( buf );
+}
+
+void LocalDomainURIFilter::configure()
+{
+ // nothing
+}
+
+K_EXPORT_COMPONENT_FACTORY( liblocaldomainurifilter,
+ KGenericFactory<LocalDomainURIFilter>( "kcmkurifilt" ) )
+
+#include "localdomainurifilter.moc"
diff --git a/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.desktop b/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.desktop
new file mode 100644
index 000000000..57826630a
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.desktop
@@ -0,0 +1,48 @@
+[Desktop Entry]
+Type=Service
+Name=LocalDomainFilter
+Name[af]=Plaaslike domein filter
+Name[az]=YerliDomenSüzgəci
+Name[ca]=Filtre de dominis locals
+Name[cs]=Filtr pro lokální doménu
+Name[csb]=Filter môlowi domenë
+Name[cy]=HidlParthLleol
+Name[el]=Φίλτρο τοπικού τομέα
+Name[eo]=LokaRetejo-filtrilo
+Name[es]=FiltrodeDominioLocal
+Name[eu]=Domeinu lokal iragazkia
+Name[fr]=Filtre de domaine local
+Name[fy]=Lokaaldomeinfilter
+Name[he]=מסנן תחומים מקומיים
+Name[hi]=लोकल-डोमेन-फ़िल्टर
+Name[hr]=Filtar lokalnih domena
+Name[hu]=HelyiTartománySzűrő
+Name[it]=FiltroDominioLocale
+Name[lo]=ຕົວກອງການບີບຂອງ KDE
+Name[lv]=LokāloDomēnuFiltrs
+Name[mt]=FiltruDominjiLokali
+Name[nds]=Filter för LocalDomain
+Name[ne]=स्थानीय डोमेन फिल्टर
+Name[nl]=Lokaaldomeinfilter
+Name[nso]=Sesekodi sa Tikologo ya Selegae
+Name[pa]=ਲੋਕਲ ਡੋਮੇਨ ਫਿਲਟਰ
+Name[pl]=Filtr lokalnej domeny
+Name[pt_BR]=Filtro de Domínio Local
+Name[ro]=Filtru de domeniu local
+Name[rw]=MuyunguruziIndangarubugaYahafi
+Name[sk]=Filter lokálnej domény
+Name[sl]=FilterLokalneDomene
+Name[sv]=Filter för lokal domän
+Name[ta]=உள்பகுதிவடிகட்டி
+Name[te]=స్థానిక డొమెయిన్ గలని
+Name[th]=ตัวกรองโดเมนท้องถื่น
+Name[uk]=Фільтр локальних доменів
+Name[ven]=Filithara ya tshigwada ya henefhano
+Name[vi]=Lọc Tên miền Địa phương
+Name[wa]=PasseteLocåDominne
+Name[zh_CN]=本地域名过滤
+Name[zh_TW]=區域網域過濾器
+Name[zu]=Ihluzo Lendawo Yaseduze
+X-KDE-Library=liblocaldomainurifilter
+ServiceTypes=KURIFilter/Plugin
+InitialPreference=2
diff --git a/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.h b/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.h
new file mode 100644
index 000000000..465214e69
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.h
@@ -0,0 +1,65 @@
+/*
+ localdomainurifilter.h
+
+ This file is part of the KDE project
+ Copyright (C) 2002 Lubos Lunak <llunak@suse.cz>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef _LOCALDOMAINURIFILTER_H_
+#define _LOCALDOMAINURIFILTER_H_
+
+#include <time.h>
+
+#include <dcopobject.h>
+#include <kgenericfactory.h>
+#include <kurifilter.h>
+#include <qregexp.h>
+
+class KInstance;
+class KProcess;
+
+/*
+ This filter takes care of hostnames in the local search domain.
+ If you're in domain domain.org which has a host intranet.domain.org
+ and the typed URI is just intranet, check if there's a host
+ intranet.domain.org and if yes, it's a network URI.
+*/
+
+class LocalDomainURIFilter : public KURIFilterPlugin, public DCOPObject
+{
+ K_DCOP
+ Q_OBJECT
+
+ public:
+ LocalDomainURIFilter( QObject* parent, const char* name, const QStringList& args );
+ virtual bool filterURI( KURIFilterData &data ) const;
+
+ k_dcop:
+ virtual void configure();
+
+ private:
+ bool isLocalDomainHost( QString& cmd ) const;
+ mutable QString last_host;
+ mutable bool last_result;
+ mutable time_t last_time;
+ mutable QString m_fullname;
+ QRegExp m_hostPortPattern;
+
+ private slots:
+ void receiveOutput( KProcess *, char *, int );
+};
+
+#endif
diff --git a/kcontrol/ebrowsing/plugins/shorturi/Makefile.am b/kcontrol/ebrowsing/plugins/shorturi/Makefile.am
new file mode 100644
index 000000000..134881987
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/shorturi/Makefile.am
@@ -0,0 +1,18 @@
+## Makefile.am of kdebase/kcontrol/ebrowsing/plugins/shorturi
+
+AM_CPPFLAGS = $(all_includes) -DQT_NO_CAST_ASCII
+
+kde_module_LTLIBRARIES = libkshorturifilter.la
+
+libkshorturifilter_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+libkshorturifilter_la_LIBADD = $(LIB_KSYCOCA) $(LIB_KDEUI)
+
+libkshorturifilter_la_SOURCES = kshorturifilter.cpp kshorturifilter.skel
+
+service_DATA = kshorturifilter.desktop
+servicedir = $(kde_servicesdir)
+
+rc_DATA = kshorturifilterrc
+rcdir = $(kde_confdir)
+
+METASOURCES = AUTO
diff --git a/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.cpp b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.cpp
new file mode 100644
index 000000000..3c0677b0f
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.cpp
@@ -0,0 +1,554 @@
+/* -*- c-basic-offset: 2 -*-
+
+ kshorturifilter.h
+
+ This file is part of the KDE project
+ Copyright (C) 2000 Dawit Alemayehu <adawit@kde.org>
+ Copyright (C) 2000 Malte Starostik <starosti@zedat.fu-berlin.de>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <pwd.h>
+#include <sys/stat.h>
+
+#include <qdir.h>
+#include <qregexp.h>
+
+#include <kapplication.h>
+#include <kdebug.h>
+#include <kprotocolinfo.h>
+#include <kstandarddirs.h>
+#include <kconfig.h>
+#include <kmimetype.h>
+
+#include "kshorturifilter.h"
+
+#define FQDN_PATTERN "(?:[a-zA-Z0-9][a-zA-Z0-9+-]*\\.[a-zA-Z]+)"
+#define IPv4_PATTERN "[0-9]{1,3}\\.[0-9]{1,3}(?:\\.[0-9]{0,3})?(?:\\.[0-9]{0,3})?"
+#define IPv6_PATTERN "^\\[.*\\]"
+#define ENV_VAR_PATTERN "\\$[a-zA-Z_][a-zA-Z0-9_]*"
+
+#define QFL1(x) QString::fromLatin1(x)
+
+ /**
+ * IMPORTANT:
+ * If you change anything here, please run the regression test
+ * kdelibs/kio/tests/kurifiltertest.
+ *
+ * If you add anything here, make sure to add a corresponding
+ * test code to kdelibs/kio/tests/kurifiltertest.
+ */
+
+typedef QMap<QString,QString> EntryMap;
+
+static bool isValidShortURL( const QString& cmd, bool verbose = false )
+{
+ // Examples of valid short URLs:
+ // "kde.org", "foo.bar:8080", "user@foo.bar:3128"
+ // "192.168.1.0", "127.0.0.1:3128"
+ // "[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]"
+ QRegExp exp;
+
+ // Match FQDN_PATTERN
+ exp.setPattern( QFL1(FQDN_PATTERN) );
+ if ( cmd.contains( exp ) )
+ {
+ if (verbose)
+ kdDebug() << "KShortURIFilter::isValidShortURL: " << cmd
+ << " matches FQDN_PATTERN" << endl;
+
+ // bug 133687
+#if 0
+ // stuff like wallpaper.png matches the FQDN_PATTERN but is most
+ // likely not a domain
+ if (KMimeType::findByPath(cmd, 0, true /* fast mode */) != KMimeType::defaultMimeTypePtr())
+ return false;
+#endif
+
+ return true;
+ }
+
+ // Match IPv4 addresses
+ exp.setPattern( QFL1(IPv4_PATTERN) );
+ if ( cmd.contains( exp ) )
+ {
+ if (verbose)
+ kdDebug() << "KShortURIFilter::isValidShortURL: " << cmd
+ << " matches IPv4_PATTERN" << endl;
+ return true;
+ }
+
+ // Match IPv6 addresses
+ exp.setPattern( QFL1(IPv6_PATTERN) );
+ if ( cmd.contains( exp ) )
+ {
+ if (verbose)
+ kdDebug() << "KShortURIFilter::isValidShortURL: " << cmd
+ << " matches IPv6_PATTERN" << endl;
+ return true;
+ }
+
+ if (verbose)
+ kdDebug() << "KShortURIFilter::isValidShortURL: '" << cmd
+ << "' is not a short URL." << endl;
+
+ return false;
+}
+
+static QString removeArgs( const QString& _cmd )
+{
+ QString cmd( _cmd );
+
+ if( cmd[0] != '\'' && cmd[0] != '"' )
+ {
+ // Remove command-line options (look for first non-escaped space)
+ int spacePos = 0;
+
+ do
+ {
+ spacePos = cmd.find( ' ', spacePos+1 );
+ } while ( spacePos > 1 && cmd[spacePos - 1] == '\\' );
+
+ if( spacePos > 0 )
+ {
+ cmd = cmd.left( spacePos );
+ //kdDebug() << k_funcinfo << "spacePos=" << spacePos << " returning " << cmd << endl;
+ }
+ }
+
+ return cmd;
+}
+
+KShortURIFilter::KShortURIFilter( QObject *parent, const char *name,
+ const QStringList & /*args*/ )
+ :KURIFilterPlugin( parent, name ? name : "kshorturifilter", 1.0),
+ DCOPObject("KShortURIFilterIface")
+{
+ configure();
+}
+
+bool KShortURIFilter::filterURI( KURIFilterData& data ) const
+{
+ /*
+ * Here is a description of how the shortURI deals with the supplied
+ * data. First it expands any environment variable settings and then
+ * deals with special shortURI cases. These special cases are the "smb:"
+ * URL scheme which is very specific to KDE, "#" and "##" which are
+ * shortcuts for man:/ and info:/ protocols respectively. It then handles
+ * local files. Then it checks to see if the URL is valid and one that is
+ * supported by KDE's IO system. If all the above checks fails, it simply
+ * lookups the URL in the user-defined list and returns without filtering
+ * if it is not found. TODO: the user-defined table is currently only manually
+ * hackable and is missing a config dialog.
+ */
+
+ KURL url = data.uri();
+ QString cmd = data.typedString();
+ bool isMalformed = !url.isValid();
+ //kdDebug() << "url=" << url.url() << " cmd=" << cmd << " isMalformed=" << isMalformed << endl;
+
+ if (!isMalformed &&
+ (url.protocol().length() == 4) &&
+ (url.protocol() != QString::fromLatin1("http")) &&
+ (url.protocol()[0]=='h') &&
+ (url.protocol()[1]==url.protocol()[2]) &&
+ (url.protocol()[3]=='p'))
+ {
+ // Handle "encrypted" URLs like: h++p://www.kde.org
+ url.setProtocol( QString::fromLatin1("http"));
+ setFilteredURI( data, url);
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+ return true;
+ }
+
+ // TODO: Make this a bit more intelligent for Minicli! There
+ // is no need to make comparisons if the supplied data is a local
+ // executable and only the argument part, if any, changed! (Dawit)
+ // You mean caching the last filtering, to try and reuse it, to save stat()s? (David)
+
+ const QString starthere_proto = QFL1("start-here:");
+ if (cmd.find(starthere_proto, 0, true) == 0 )
+ {
+ setFilteredURI( data, KURL("system:/") );
+ setURIType( data, KURIFilterData::LOCAL_DIR );
+ return true;
+ }
+
+ // Handle MAN & INFO pages shortcuts...
+ const QString man_proto = QFL1("man:");
+ const QString info_proto = QFL1("info:");
+ if( cmd[0] == '#' ||
+ cmd.find( man_proto, 0, true ) == 0 ||
+ cmd.find( info_proto, 0, true ) == 0 )
+ {
+ if( cmd.left(2) == QFL1("##") )
+ cmd = QFL1("info:/") + cmd.mid(2);
+ else if ( cmd[0] == '#' )
+ cmd = QFL1("man:/") + cmd.mid(1);
+
+ else if ((cmd==info_proto) || (cmd==man_proto))
+ cmd+='/';
+
+ setFilteredURI( data, KURL( cmd ));
+ setURIType( data, KURIFilterData::HELP );
+ return true;
+ }
+
+ // Detect UNC style (aka windows SMB) URLs
+ if ( cmd.startsWith( QString::fromLatin1( "\\\\") ) )
+ {
+ // make sure path is unix style
+ cmd.replace('\\', '/');
+ cmd.prepend( QString::fromLatin1( "smb:" ) );
+ setFilteredURI( data, KURL( cmd ));
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+ return true;
+ }
+
+ bool expanded = false;
+
+ // Expanding shortcut to HOME URL...
+ QString path;
+ QString ref;
+ QString query;
+ QString nameFilter;
+
+ if (KURL::isRelativeURL(cmd) && QDir::isRelativePath(cmd)) {
+ path = cmd;
+ }
+ else
+ {
+ if (url.isLocalFile())
+ {
+ // Split path from ref/query if the path exists
+ // but not for "/tmp/a#b", if "a#b" is an existing file,
+ // or for "/tmp/a?b" (#58990)
+ if ( ( url.hasRef() || !url.query().isEmpty() ) // avoid the calling exists() when not needed
+ && QFile::exists(url.path())
+ && !url.path().endsWith(QFL1("/")) ) // /tmp/?foo is a namefilter, not a query
+ {
+ path = url.path();
+ ref = url.ref();
+ query = url.query();
+ if (path.isEmpty() && url.hasHost())
+ path = '/';
+ }
+ else
+ {
+ path = cmd;
+ }
+ }
+ }
+
+ if( path[0] == '~' )
+ {
+ int slashPos = path.find('/');
+ if( slashPos == -1 )
+ slashPos = path.length();
+ if( slashPos == 1 ) // ~/
+ {
+ path.replace ( 0, 1, QDir::homeDirPath() );
+ }
+ else // ~username/
+ {
+ QString user = path.mid( 1, slashPos-1 );
+ struct passwd *dir = getpwnam(user.local8Bit().data());
+ if( dir && strlen(dir->pw_dir) )
+ {
+ path.replace (0, slashPos, QString::fromLocal8Bit(dir->pw_dir));
+ }
+ else
+ {
+ QString msg = dir ? i18n("<qt><b>%1</b> does not have a home folder.</qt>").arg(user) :
+ i18n("<qt>There is no user called <b>%1</b>.</qt>").arg(user);
+ setErrorMsg( data, msg );
+ setURIType( data, KURIFilterData::ERROR );
+ // Always return true for error conditions so
+ // that other filters will not be invoked !!
+ return true;
+ }
+ }
+ expanded = true;
+ }
+ else if ( path[0] == '$' ) {
+ // Environment variable expansion.
+ QRegExp r (QFL1(ENV_VAR_PATTERN));
+ if ( r.search( path ) == 0 )
+ {
+ const char* exp = getenv( path.mid( 1, r.matchedLength() - 1 ).local8Bit().data() );
+ if(exp)
+ {
+ path.replace( 0, r.matchedLength(), QString::fromLocal8Bit(exp) );
+ expanded = true;
+ }
+ }
+ }
+
+ if ( expanded )
+ {
+ // Look for #ref again, after $ and ~ expansion (testcase: $QTDIR/doc/html/functions.html#s)
+ // Can't use KURL here, setPath would escape it...
+ int pos = path.find('#');
+ if ( pos > -1 )
+ {
+ ref = path.mid( pos + 1 );
+ path = path.left( pos );
+ //kdDebug() << "Extracted ref: path=" << path << " ref=" << ref << endl;
+ }
+ }
+
+
+ bool isLocalFullPath = (!path.isEmpty() && path[0] == '/');
+
+ // Checking for local resource match...
+ // Determine if "uri" is an absolute path to a local resource OR
+ // A local resource with a supplied absolute path in KURIFilterData
+ QString abs_path = data.absolutePath();
+
+ bool canBeAbsolute = (isMalformed && !abs_path.isEmpty());
+ bool canBeLocalAbsolute = (canBeAbsolute && abs_path[0] =='/');
+ bool exists = false;
+
+ /*kdDebug() << "abs_path=" << abs_path << " malformed=" << isMalformed
+ << " canBeLocalAbsolute=" << canBeLocalAbsolute << endl;*/
+
+ struct stat buff;
+ if ( canBeLocalAbsolute )
+ {
+ QString abs = QDir::cleanDirPath( abs_path );
+ // combine absolute path (abs_path) and relative path (cmd) into abs_path
+ int len = path.length();
+ if( (len==1 && path[0]=='.') || (len==2 && path[0]=='.' && path[1]=='.') )
+ path += '/';
+ //kdDebug() << "adding " << abs << " and " << path << endl;
+ abs = QDir::cleanDirPath(abs + '/' + path);
+ //kdDebug() << "checking whether " << abs << " exists." << endl;
+ // Check if it exists
+ if( stat( QFile::encodeName(abs).data(), &buff ) == 0 )
+ {
+ path = abs; // yes -> store as the new cmd
+ exists = true;
+ isLocalFullPath = true;
+ }
+ }
+
+ if( isLocalFullPath && !exists )
+ {
+ exists = ( stat( QFile::encodeName(path).data() , &buff ) == 0 );
+
+ if ( !exists ) {
+ // Support for name filter (/foo/*.txt), see also KonqMainWindow::detectNameFilter
+ // If the app using this filter doesn't support it, well, it'll simply error out itself
+ int lastSlash = path.findRev( '/' );
+ if ( lastSlash > -1 && path.find( ' ', lastSlash ) == -1 ) // no space after last slash, otherwise it's more likely command-line arguments
+ {
+ QString fileName = path.mid( lastSlash + 1 );
+ QString testPath = path.left( lastSlash + 1 );
+ if ( ( fileName.find( '*' ) != -1 || fileName.find( '[' ) != -1 || fileName.find( '?' ) != -1 )
+ && stat( QFile::encodeName(testPath).data(), &buff ) == 0 )
+ {
+ nameFilter = fileName;
+ kdDebug() << "Setting nameFilter to " << nameFilter << endl;
+ path = testPath;
+ exists = true;
+ }
+ }
+ }
+ }
+
+ //kdDebug() << "path =" << path << " isLocalFullPath=" << isLocalFullPath << " exists=" << exists << endl;
+ if( exists )
+ {
+ KURL u;
+ u.setPath(path);
+ u.setRef(ref);
+ u.setQuery(query);
+
+ if (kapp && !kapp->authorizeURLAction( QString::fromLatin1("open"), KURL(), u))
+ {
+ // No authorisation, we pretend it's a file will get
+ // an access denied error later on.
+ setFilteredURI( data, u );
+ setURIType( data, KURIFilterData::LOCAL_FILE );
+ return true;
+ }
+
+ // Can be abs path to file or directory, or to executable with args
+ bool isDir = S_ISDIR( buff.st_mode );
+ if( !isDir && access ( QFile::encodeName(path).data(), X_OK) == 0 )
+ {
+ //kdDebug() << "Abs path to EXECUTABLE" << endl;
+ setFilteredURI( data, u );
+ setURIType( data, KURIFilterData::EXECUTABLE );
+ return true;
+ }
+
+ // Open "uri" as file:/xxx if it is a non-executable local resource.
+ if( isDir || S_ISREG( buff.st_mode ) )
+ {
+ //kdDebug() << "Abs path as local file or directory" << endl;
+ if ( !nameFilter.isEmpty() )
+ u.setFileName( nameFilter );
+ setFilteredURI( data, u );
+ setURIType( data, ( isDir ) ? KURIFilterData::LOCAL_DIR : KURIFilterData::LOCAL_FILE );
+ return true;
+ }
+
+ // Should we return LOCAL_FILE for non-regular files too?
+ kdDebug() << "File found, but not a regular file nor dir... socket?" << endl;
+ }
+
+ // Let us deal with possible relative URLs to see
+ // if it is executable under the user's $PATH variable.
+ // We try hard to avoid parsing any possible command
+ // line arguments or options that might have been supplied.
+ QString exe = removeArgs( cmd );
+ //kdDebug() << k_funcinfo << "findExe with " << exe << endl;
+ if( data.checkForExecutables() && !KStandardDirs::findExe( exe ).isNull() )
+ {
+ //kdDebug() << "EXECUTABLE exe=" << exe << endl;
+ setFilteredURI( data, KURL( exe ));
+ // check if we have command line arguments
+ if( exe != cmd )
+ setArguments(data, cmd.right(cmd.length() - exe.length()));
+ setURIType( data, KURIFilterData::EXECUTABLE );
+ return true;
+ }
+
+ // Process URLs of known and supported protocols so we don't have
+ // to resort to the pattern matching scheme below which can possibly
+ // be slow things down...
+ if ( !isMalformed && !isLocalFullPath )
+ {
+ const QStringList protocols = KProtocolInfo::protocols();
+ for( QStringList::ConstIterator it = protocols.begin(); it != protocols.end(); ++it )
+ {
+ if( (url.protocol() == *it) )
+ {
+ setFilteredURI( data, url );
+ if ( *it == QFL1("man") || *it == QFL1("help") )
+ setURIType( data, KURIFilterData::HELP );
+ else
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+ return true;
+ }
+ }
+ }
+
+ // Okay this is the code that allows users to supply custom matches for
+ // specific URLs using Qt's regexp class. This is hard-coded for now.
+ // TODO: Make configurable at some point...
+ if ( !cmd.contains( ' ' ) )
+ {
+ QValueList<URLHint>::ConstIterator it;
+ for( it = m_urlHints.begin(); it != m_urlHints.end(); ++it )
+ {
+ QRegExp match( (*it).regexp );
+ if ( match.search( cmd, 0 ) == 0 )
+ {
+ //kdDebug() << "match - prepending " << (*it).prepend << endl;
+ cmd.prepend( (*it).prepend );
+ setFilteredURI( data, KURL( cmd ) );
+ setURIType( data, (*it).type );
+ return true;
+ }
+ }
+
+ // If cmd is NOT a local resource, check if it is a valid "shortURL"
+ // candidate and append the default protocol the user supplied. (DA)
+ if ( isMalformed && isValidShortURL(cmd, m_bVerbose) )
+ {
+ if (m_bVerbose)
+ kdDebug() << "Valid short url, from malformed url -> using default proto="
+ << m_strDefaultProtocol << endl;
+
+ cmd.insert( 0, m_strDefaultProtocol );
+ setFilteredURI( data, KURL( cmd ));
+ setURIType( data, KURIFilterData::NET_PROTOCOL );
+ return true;
+ }
+ }
+
+ // If we previously determined that the URL might be a file,
+ // and if it doesn't exist, then error
+ if( isLocalFullPath && !exists )
+ {
+ KURL u;
+ u.setPath(path);
+ u.setRef(ref);
+
+ if (kapp && !kapp->authorizeURLAction( QString::fromLatin1("open"), KURL(), u))
+ {
+ // No authorisation, we pretend it exists and will get
+ // an access denied error later on.
+ setFilteredURI( data, u );
+ setURIType( data, KURIFilterData::LOCAL_FILE );
+ return true;
+ }
+ //kdDebug() << "fileNotFound -> ERROR" << endl;
+ setErrorMsg( data, i18n( "<qt>The file or folder <b>%1</b> does not exist." ).arg( data.uri().prettyURL() ) );
+ setURIType( data, KURIFilterData::ERROR );
+ return true;
+ }
+
+ // If we reach this point, we cannot filter this thing so simply return false
+ // so that other filters, if present, can take a crack at it.
+ return false;
+}
+
+KCModule* KShortURIFilter::configModule( QWidget*, const char* ) const
+{
+ return 0; //new KShortURIOptions( parent, name );
+}
+
+QString KShortURIFilter::configName() const
+{
+ return i18n("&ShortURLs");
+}
+
+void KShortURIFilter::configure()
+{
+ KConfig config( name() + QFL1("rc"), false, false );
+ m_bVerbose = config.readBoolEntry( "Verbose", false );
+
+ if ( m_bVerbose )
+ kdDebug() << "KShortURIFilter::configure: Config reload request..." << endl;
+
+ m_strDefaultProtocol = config.readEntry( "DefaultProtocol", QFL1("http://") );
+ EntryMap patterns = config.entryMap( QFL1("Pattern") );
+ const EntryMap protocols = config.entryMap( QFL1("Protocol") );
+ config.setGroup("Type");
+
+ for( EntryMap::Iterator it = patterns.begin(); it != patterns.end(); ++it )
+ {
+ QString protocol = protocols[it.key()];
+ if (!protocol.isEmpty())
+ {
+ int type = config.readNumEntry(it.key(), -1);
+ if (type > -1 && type <= KURIFilterData::UNKNOWN)
+ m_urlHints.append( URLHint(it.data(), protocol, static_cast<KURIFilterData::URITypes>(type) ) );
+ else
+ m_urlHints.append( URLHint(it.data(), protocol) );
+ }
+ }
+}
+
+K_EXPORT_COMPONENT_FACTORY( libkshorturifilter,
+ KGenericFactory<KShortURIFilter>( "kcmkurifilt" ) )
+
+#include "kshorturifilter.moc"
diff --git a/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.desktop b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.desktop
new file mode 100644
index 000000000..b681deb90
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.desktop
@@ -0,0 +1,54 @@
+[Desktop Entry]
+Type=Service
+Name=ShortURIFilter
+Name[af]=KortURIfilter
+Name[az]=KısaURISüzgeci
+Name[br]=SilURLBerr
+Name[ca]=Filtre d'URI curt
+Name[csb]=Filter krótczich URI
+Name[cy]=HidlURIByr
+Name[da]=KortURIFilter
+Name[de]=Kurz-URL-Filter
+Name[el]=Φίλτρο σύντομων URI
+Name[eo]=Mallonga URI-filtrilo
+Name[es]=Filtro de URIs cortas
+Name[et]=Lühikeste URLide filter
+Name[eu]=URL laburren iragazkia
+Name[fo]=Stutt URI-filtur
+Name[fr]=Filtres d'URL courtes
+Name[he]=מסנן כתובות קצרות
+Name[hi]=शॉर्ट-यूआरआई-फ़िल्टर
+Name[hr]=Filtar kratkih URI-a
+Name[hu]=RövidURISzűrő
+Name[id]=FilterURIPendek
+Name[it]=Filtro di URI brevi
+Name[ja]=ショート URI フィルタ
+Name[lv]=ĪssURIFiltrs
+Name[mn]=Богино-URL-Шүүлтүүр
+Name[nds]=KortURI-Filter
+Name[ne]=छोटो URI फिल्टर
+Name[nso]=Sesekodi se Sekopana sa URI
+Name[oc]=Filtre d'URI curta
+Name[pa]=ShortURI ਫਿਲਟਰ
+Name[pl]=Filtr Krótkich URI
+Name[pt_BR]=Filtro URI
+Name[ro]=Filtru de URI-uri scurte
+Name[rw]=MuyunguruziURINgufi
+Name[sk]=KrátkyURIFilter
+Name[sl]=FilterZaKratkeURI
+Name[sv]=Kortwebbadressfilter
+Name[ta]=சிறியtவலைப்பின்னல்வடிகட்டி
+Name[te]=చిన్న యు ఆర్ ఐ గలని
+Name[tg]=КӯтоҳиURI-и софӣ
+Name[th]=ตัวกรองURIแบบสั้น
+Name[tr]=KısaURISüzgeci
+Name[tt]=Qısqa URI Sözgeç
+Name[uk]=Фільтр коротких URI
+Name[ven]=Filithara thukhu ya URI
+Name[vi]=Lọc Địa chỉ URI Ngắn
+Name[wa]=PasseteCoutURI
+Name[zh_CN]=短 URI 过滤
+Name[zh_TW]=短 URI 過濾器
+X-KDE-Library=libkshorturifilter
+ServiceTypes=KURIFilter/Plugin
+InitialPreference=5
diff --git a/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.h b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.h
new file mode 100644
index 000000000..c6603da19
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.h
@@ -0,0 +1,111 @@
+/*
+ kshorturifilter.h
+
+ This file is part of the KDE project
+ Copyright (C) 2000 Dawit Alemayehu <adawit@kde.org>
+ Copyright (C) 2000 Malte Starostik <starosti@zedat.fu-berlin.de>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef _KSHORTURIFILTER_H_
+#define _KSHORTURIFILTER_H_
+
+#include <dcopobject.h>
+#include <kgenericfactory.h>
+#include <kurifilter.h>
+
+class KInstance;
+
+/**
+* This is short URL filter class.
+*
+* @short A filter that converts short URLs into fully qualified ones.
+*
+* @author Dawit Alemayehu <adawit@kde.org>
+* @author Malte Starostik <starosti@zedat.fu-berlin.de>
+*/
+class KShortURIFilter : public KURIFilterPlugin , public DCOPObject
+{
+ K_DCOP
+ Q_OBJECT
+public:
+
+ /**
+ * Creates a Short URI filter object
+ *
+ * @param parent the parent of this class.
+ * @param name the internal name for this object.
+ */
+ KShortURIFilter( QObject *parent = 0, const char *name = 0,
+ const QStringList &args = QStringList() );
+
+ /**
+ * Destructor
+ */
+ virtual ~KShortURIFilter() {};
+
+ /**
+ * Converts short URIs into fully qualified valid URIs
+ * whenever possible.
+ *
+ * Parses any given invalid URI to determine whether it
+ * is a known short URI and converts it to its fully
+ * qualified version.
+ *
+ * @param data the data to be filtered
+ * @return true if the url has been filtered
+ */
+ virtual bool filterURI( KURIFilterData &data ) const;
+
+ /**
+ * Returns the name of the config module for
+ * this plugin.
+ *
+ * @return the name of the config module.
+ */
+ virtual QString configName() const;
+
+ /**
+ * Returns an instance of the module used to configure
+ * this object.
+ *
+ * @return the config module
+ */
+ virtual KCModule* configModule( QWidget*, const char* ) const;
+
+public:
+k_dcop:
+ virtual void configure();
+
+private:
+
+ struct URLHint
+ {
+ URLHint() {}
+ URLHint( QString r, QString p,
+ KURIFilterData::URITypes t = KURIFilterData::NET_PROTOCOL )
+ : regexp(r), prepend(p), type(t) {}
+ QString regexp; // if this matches, then...
+ QString prepend; // ...prepend this to the url
+ KURIFilterData::URITypes type;
+ };
+
+ QValueList<URLHint> m_urlHints;
+ QString m_strDefaultProtocol;
+ bool m_bVerbose;
+};
+
+#endif
diff --git a/kcontrol/ebrowsing/plugins/shorturi/kshorturifilterrc b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilterrc
new file mode 100644
index 000000000..c98db1803
--- /dev/null
+++ b/kcontrol/ebrowsing/plugins/shorturi/kshorturifilterrc
@@ -0,0 +1,7 @@
+[Pattern]
+kdemailto=^(\w+)(?:[.]\w+)?@(\w+)(?:[.]\w+)+$
+kdeftp=^ftp(?:\.\w+)?\.\D{2,}(?:[0-9]{1,5})?
+
+[Protocol]
+kdemailto=mailto:
+kdeftp=ftp://