Ki18n modifications for KF5 are now roughly completed, in the sense that it
behaves according to the new spec, the frameworks branch compiles, and the
existing unit tests pass (those still applicable). Things left to do
include:

  * Update KDE5PORTING.html (the few salient points).
  * Update kconfig_compiler and KXmlGui for linking to catalogs.
  * Add more unit tests for i18n and especially xi18n calls.
  * Add more default markup for xi18n calls (because Qt Rich Text
    cannot be mixed with KUIT markup any more).
  * Collect documentation for translation scripting
    (the "Translator's Guide" Doxygen page).
  * Add unit tests for translation scripting.
  * Enable documentation building through CMake.

Should I merge the changes now? I attach the diff to *other* code in the
frameworks branch, that was necessary for the build to work. This consists
mostly of replacing insertCatalog calls (and stuff connected to them) with
static resolution of translation domains.

In the future I would examine ki18n-using frameworks as they near their
final shape, for the finer details of the new i18n semantics (e.g. which
i18n calls should become xi18n calls, is the catalog connection in non-code
files properly established, etc.)

-- 
Chusslove Illich (Часлав Илић)
diff --git a/KDE5PORTING.html b/KDE5PORTING.html
index 9d84525..f53d5d5 100644
--- a/KDE5PORTING.html
+++ b/KDE5PORTING.html
@@ -229,11 +229,7 @@ A script is available in kdesdk/kde-dev-scripts/kf5/convert-kstandarddirs.pl to
    KMimeType::allMimeTypes() -> db.allMimeTypes()
 </pre>
 </li>
-<li>KLocale has been splitted up: KLocale is now only about locale settings, while translation support has moved to KLocalizedString.
-<pre>
-    KLocale::insertCatalog -&gt; KLocalizedString::insertCatalog
-</pre>
-</li>
+<li>KLocale has been splitted up: KLocale is now only about locale settings, while translation support has moved to KLocalizedString.</li>
 <li>KCmdLineArgs uses K4AboutData rather than KAboutData: K4AboutData keeps the old mechanism for delayed translations
  (I18N_NOOP), while KAboutData is the one used by plugins, which can use immediate translation (i18n).
 </li>
diff --git a/interfaces/kmediaplayer/kfileaudiopreview/kfileaudiopreview.cpp b/interfaces/kmediaplayer/kfileaudiopreview/kfileaudiopreview.cpp
index 3c33ed9..7018855 100644
--- a/interfaces/kmediaplayer/kfileaudiopreview/kfileaudiopreview.cpp
+++ b/interfaces/kmediaplayer/kfileaudiopreview/kfileaudiopreview.cpp
@@ -26,6 +26,7 @@
 #include <defaults-kfile.h> // for ConfigGroup
 
 #include <kconfig.h>
+#define TRANSLATION_DOMAIN "kfileaudiopreview4"
 #include <klocalizedstring.h>
 #include <kpluginfactory.h>
 #include <kpluginloader.h>
@@ -68,8 +69,6 @@ KFileAudioPreview::KFileAudioPreview( QWidget *parent, const QVariantList & )
     : KPreviewWidgetBase( parent )
     , d( new Private )
 {
-    KLocalizedString::insertCatalog("kfileaudiopreview4");
-
     setSupportedMimeTypes(BackendCapabilities::availableMimeTypes());
 
     d->audioOutput = new AudioOutput(Phonon::NoCategory, this);
diff --git a/interfaces/kmediaplayer/kfileaudiopreview/mediacontrols_p.h b/interfaces/kmediaplayer/kfileaudiopreview/mediacontrols_p.h
index 670d1ab..432e44b 100644
--- a/interfaces/kmediaplayer/kfileaudiopreview/mediacontrols_p.h
+++ b/interfaces/kmediaplayer/kfileaudiopreview/mediacontrols_p.h
@@ -21,6 +21,7 @@
 #define PHONON_MEDIACONTROLS_P_H
 
 #include "mediacontrols.h"
+#define TRANSLATION_DOMAIN "kfileaudiopreview4"
 #include <klocalizedstring.h>
 #include <phonon/volumeslider.h>
 #include <phonon/seekslider.h>
diff --git a/kded/kbuildsycoca.cpp b/kded/kbuildsycoca.cpp
index 95e0f4e..bcc4785 100644
--- a/kded/kbuildsycoca.cpp
+++ b/kded/kbuildsycoca.cpp
@@ -662,7 +662,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
    KCrash::setApplicationName(QString::fromLatin1(KBUILDSYCOCA_EXENAME));
 #endif
 
-   KLocalizedString::setApplicationCatalog("kdelibs5");
+   KLocalizedString::setApplicationDomain("kdelibs5");
    // force generating of KLocale object. if not, the database will get
    // be translated
    QLocale::setDefault(QLocale::C);
diff --git a/kded/kded.cpp b/kded/kded.cpp
index 2abc210..b7ab464 100644
--- a/kded/kded.cpp
+++ b/kded/kded.cpp
@@ -788,7 +788,7 @@ void KBuildsycocaAdaptor::enableTestMode()
 
 extern "C" Q_DECL_EXPORT int kdemain(int argc, char *argv[])
 {
-    KLocalizedString::setApplicationCatalog("kdelibs4");
+    KLocalizedString::setApplicationDomain("kdelibs4");
 
     //options.add("check", qi18n("Check Sycoca database only once"));
 
diff --git a/khtml/khtml_part.cpp b/khtml/khtml_part.cpp
index 83d8d96..28937bf 100644
--- a/khtml/khtml_part.cpp
+++ b/khtml/khtml_part.cpp
@@ -535,12 +535,6 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
 
   if (prof == BrowserViewGUI && !parentPart())
       loadPlugins();
-
-  // "khtml" catalog does not exist, our translations are in kdelibs.
-  // removing this catalog from KLocalizedString prevents problems
-  // with changing the language in applications at runtime -Thomas Reitelbach
-  // DF: a better fix would be to set the right catalog name in the KComponentData!
-  KLocalizedString::removeCatalog("khtml");
 }
 
 KHTMLPart::~KHTMLPart()
diff --git a/kinit/klauncher_main.cpp b/kinit/klauncher_main.cpp
index ccf74e2..7745189 100644
--- a/kinit/klauncher_main.cpp
+++ b/kinit/klauncher_main.cpp
@@ -149,7 +149,7 @@ extern "C" Q_DECL_EXPORT int kdemain( int argc, char**argv )
    QCoreApplication app(argc, argv);
    app.setApplicationName("klauncher");
 
-   KLocalizedString::setApplicationCatalog("kdelibs4");
+   KLocalizedString::setApplicationDomain("kdelibs4");
 
    int maxTry = 3;
    while(true)
diff --git a/kio/misc/ksendbugmail/main.cpp b/kio/misc/ksendbugmail/main.cpp
index a7e11bb..b3fb49b 100644
--- a/kio/misc/ksendbugmail/main.cpp
+++ b/kio/misc/ksendbugmail/main.cpp
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
     a.setApplicationName("ksendbugmail");
     a.setApplicationVersion("1.0");
 
-    KLocalizedString::setApplicationCatalog("kdelibs4");
+    KLocalizedString::setApplicationDomain("kdelibs4");
 
     //d.addAuthor(ki18n("Stephan Kulow"), ki18n("Author"), "co...@kde.org");
 
diff --git a/kioslave/http/http_cache_cleaner.cpp b/kioslave/http/http_cache_cleaner.cpp
index 9ccfa1a..c3c23fc 100644
--- a/kioslave/http/http_cache_cleaner.cpp
+++ b/kioslave/http/http_cache_cleaner.cpp
@@ -714,7 +714,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
     QCoreApplication app(argc, argv);
     app.setApplicationVersion("5.0");
 
-    KLocalizedString::setApplicationCatalog("kio5");
+    KLocalizedString::setApplicationDomain("kio5");
 
     QCommandLineParser parser;
     parser.addVersionOption();
diff --git a/kioslave/http/kcookiejar/main.cpp b/kioslave/http/kcookiejar/main.cpp
index 38d1331..c64bf9c 100644
--- a/kioslave/http/kcookiejar/main.cpp
+++ b/kioslave/http/kcookiejar/main.cpp
@@ -33,7 +33,7 @@ int main(int argc, char *argv[])
 {
     QCoreApplication app(argc, argv);
     app.setApplicationVersion("1.0");
-    KLocalizedString::setApplicationCatalog("kio5");
+    KLocalizedString::setApplicationDomain("kio5");
 
     QString description = QCoreApplication::translate("main", "HTTP Cookie Daemon");
 
diff --git a/kparts/part.cpp b/kparts/part.cpp
index b53dc55..c92fbd1 100644
--- a/kparts/part.cpp
+++ b/kparts/part.cpp
@@ -156,7 +156,6 @@ void PartBase::setComponentData(const KAboutData &pluginData, bool bLoadPlugins)
     d->m_componentData = pluginData;
     KAboutData::registerPluginData(pluginData);
     KXMLGUIClient::setComponentName(pluginData.componentName(), pluginData.displayName());
-    KLocalizedString::insertCatalog(pluginData.catalogName());
     if (bLoadPlugins) {
         loadPlugins(d->m_obj, this, pluginData);
     }
diff --git a/kparts/plugin.cpp b/kparts/plugin.cpp
index 55e2779..07a101c 100644
--- a/kparts/plugin.cpp
+++ b/kparts/plugin.cpp
@@ -205,7 +205,6 @@ void Plugin::setComponentData(const KAboutData &pluginData)
 {
     KAboutData::registerPluginData(pluginData);
     KXMLGUIClient::setComponentName(pluginData.componentName(), pluginData.displayName());
-    KLocalizedString::insertCatalog(pluginData.catalogName());
 }
 
 void Plugin::loadPlugins(QObject *parent, KXMLGUIClient* parentGUIClient,
diff --git a/kross/console/main.cpp b/kross/console/main.cpp
index 9b34219..7591199 100644
--- a/kross/console/main.cpp
+++ b/kross/console/main.cpp
@@ -108,7 +108,7 @@ int main(int argc, char **argv)
                      "kr...@dipe.org");*/
     //about.addAuthor(ki18n("Sebastian Sauer"), ki18n("Author"), "m...@dipe.org");
 
-    KLocalizedString::setApplicationCatalog("kdelibs4");
+    KLocalizedString::setApplicationDomain("kdelibs4");
 
     // Initialize command line args
     // Tell which options are supported and parse them.
diff --git a/staging/kconfigwidgets/src/kcmodule.cpp b/staging/kconfigwidgets/src/kcmodule.cpp
index 58fdfd3..fc5e4d8 100644
--- a/staging/kconfigwidgets/src/kcmodule.cpp
+++ b/staging/kconfigwidgets/src/kcmodule.cpp
@@ -224,8 +224,6 @@ const KAboutData *KCModule::aboutData() const
 
 void KCModule::setAboutData(const KAboutData *about)
 {
-    KLocalizedString::insertCatalog(about->catalogName());
-
     delete d->_about;
     d->_about = about;
 }
diff --git a/staging/kde4attic/autotests/kcalendartest.cpp b/staging/kde4attic/autotests/kcalendartest.cpp
index e5cfeb9..4d6e61d 100644
--- a/staging/kde4attic/autotests/kcalendartest.cpp
+++ b/staging/kde4attic/autotests/kcalendartest.cpp
@@ -787,7 +787,6 @@ void KCalendarTest::testHebrewStrings()
     KLocale *locale = new KLocale(*KLocale::global());
     locale->setLanguage(QStringList() << "he");
     locale->setDateFormat("%d %B %Y");
-    KLocalizedString::insertCatalog("kdecalendarsystems");
     const KCalendarSystem *calendar = KCalendarSystem::create(KLocale::HebrewCalendar, locale);
     if (locale->language() == "he") {
         QDate testDate;
diff --git a/staging/kde4attic/src/kdatetimeedit.cpp b/staging/kde4attic/src/kdatetimeedit.cpp
index f2de088..57e2128 100644
--- a/staging/kde4attic/src/kdatetimeedit.cpp
+++ b/staging/kde4attic/src/kdatetimeedit.cpp
@@ -196,7 +196,7 @@ void KDateTimeEditPrivate::initTimeSpecWidget()
     QStringList keys = m_zones.keys();
     QMap<QString, QString> names;
     foreach (const QString &key, keys) {
-        names.insert(i18n(key.toUtf8()).replace('_', ' '), key);
+        names.insert(i18nd("timezones4", key.toUtf8()).replace('_', ' '), key);
     }
     QMapIterator<QString, QString> i(names);
     while (i.hasNext()) {
@@ -264,7 +264,6 @@ KDateTimeEdit::KDateTimeEdit(QWidget *parent)
               :QWidget(parent),
                d(new KDateTimeEditPrivate(this))
 {
-    KLocalizedString::insertCatalog("timezones4");
     d->ui.setupUi(this);
     //Need to do the min/max defaults here and not in private init as need to wait for ui to init
     //the KDateComboBox which holds the calendar object.  Revisit this???
diff --git a/staging/kde4attic/src/ktimezonewidget.h b/staging/kde4attic/src/ktimezonewidget.h
index b7ed56c..395fb3c 100644
--- a/staging/kde4attic/src/ktimezonewidget.h
+++ b/staging/kde4attic/src/ktimezonewidget.h
@@ -134,12 +134,7 @@ class KDE4ATTIC_EXPORT KTimeZoneWidget : public QTreeWidget
     void clearSelection();
 
     /**
-     * Format a time zone name in a standardised manner. The returned value is
-     * transformed via an i18n lookup, so the caller should previously have
-     * set the time zone catalog:
-     * \code
-     *   KLocalizedString::insertCatalog( "timezones4" );
-     * \endcode
+     * Format a time zone name in a standardised manner.
      *
      * @return formatted time zone name.
      */
diff --git a/staging/kde4support/src/kdecore/kcomponentdata_p.h b/staging/kde4support/src/kdecore/kcomponentdata_p.h
index c89c648..a5ba7c3 100644
--- a/staging/kde4support/src/kdecore/kcomponentdata_p.h
+++ b/staging/kde4support/src/kdecore/kcomponentdata_p.h
@@ -37,25 +37,13 @@ class KComponentDataPrivate
 public:
     KComponentDataPrivate(const K4AboutData &aboutData_)
         : aboutData(aboutData_),
-        shouldRemoveCatalog(false),
         refCount(1)
     {
-#if 0 // TEMP_KF5_REENABLE
-        if (QCoreApplication::instance()) {
-            // KLocal::global() needs an app name
-            KLocale::global()->insertCatalog(aboutData.catalogName());
-            shouldRemoveCatalog = true;
-        }
-#endif
     }
 
     ~KComponentDataPrivate()
     {
         refCount.fetchAndStoreOrdered(-0x00FFFFFF); //prevent a reentering of the dtor
-#if 0 // TEMP_KF5_REENABLE
-        if (shouldRemoveCatalog && KLocale::global())
-            KLocale::global()->removeCatalog(aboutData.catalogName());
-#endif
 
         sharedConfig = 0;   //delete the config object first, because it could access the standard dirs while syncing
     }
@@ -83,7 +71,6 @@ public:
     KSharedConfig::Ptr sharedConfig;
 
 private:
-    bool shouldRemoveCatalog;
     QAtomicInt refCount;
     KComponentDataPrivate(const KComponentDataPrivate&);
     KComponentDataPrivate &operator=(const KComponentDataPrivate&);
diff --git a/staging/kde4support/src/kdecore/kgenericfactory.h b/staging/kde4support/src/kdecore/kgenericfactory.h
index d0681a2..0bdc490 100644
--- a/staging/kde4support/src/kdecore/kgenericfactory.h
+++ b/staging/kde4support/src/kdecore/kgenericfactory.h
@@ -35,15 +35,15 @@ template <class T>
 class KGenericFactoryBase : public KPluginFactory
 {
 public:
-    explicit KGenericFactoryBase(const char *componentName, const char *catalogName)
-        : KPluginFactory(componentName, catalogName)
+    explicit KGenericFactoryBase(const char *componentName)
+        : KPluginFactory(componentName)
     {
         s_self = this;
         s_createComponentDataCalled = false;
     }
 
     explicit KGenericFactoryBase( const KAboutData *data )
-        : KPluginFactory(data->componentName().toUtf8().constData(), data->catalogName().toUtf8().constData())
+        : KPluginFactory(data->componentName().toUtf8().constData())
     {
         KAboutData::registerPluginData(*data);
         s_self = this;
@@ -121,8 +121,8 @@ bool KGenericFactoryBase<T>::s_createComponentDataCalled = false;
  *
  * In addition upon instantiation this template provides a central
  * KComponentData object for your component, accessible through the
- * static componentData() method. The componentName and catalogName arguments
- * of the KGenericFactory constructor are passed to the KComponentData object.
+ * static componentData() method. The componentName argument
+ * of the KGenericFactory constructor is passed to the KComponentData object.
  *
  * The creation of the KComponentData object can be customized by inheriting
  * from this template class and re-implementing the virtual createComponentData
@@ -153,8 +153,8 @@ template <class Product, class ParentType = QObject>
 class KDE4SUPPORT_DEPRECATED KGenericFactory : public KGenericFactoryBase<Product>
 {
 public:
-    explicit KGenericFactory( const char *componentName = 0, const char *catalogName = 0 )
-        : KGenericFactoryBase<Product>(componentName, catalogName)
+    explicit KGenericFactory( const char *componentName = 0 )
+        : KGenericFactoryBase<Product>(componentName)
     {}
 
     explicit KGenericFactory( const KAboutData *data )
@@ -202,8 +202,8 @@ protected:
  *
  * In addition upon instantiation this template provides a central
  * KComponentData object for your component, accessible through the
- * static componentData() method. The componentName and catalogName arguments
- * of the KGenericFactory constructor are passed to the KComponentData object.
+ * static componentData() method. The componentName argument
+ * of the KGenericFactory constructor is passed to the KComponentData object.
  *
  * The creation of the KComponentData object can be customized by inheriting
  * from this template class and re-implementing the virtual createComponentData
@@ -244,8 +244,8 @@ class KGenericFactory< KTypeList<Product, ProductListTail>, QObject >
     : public KGenericFactoryBase<KTypeList<Product, ProductListTail> >
 {
 public:
-    explicit KGenericFactory( const char *componentName  = 0, const char *catalogName  = 0 )
-        : KGenericFactoryBase<KTypeList<Product, ProductListTail> >(componentName, catalogName)
+    explicit KGenericFactory( const char *componentName  = 0 )
+        : KGenericFactoryBase<KTypeList<Product, ProductListTail> >(componentName)
     {}
 
     explicit KGenericFactory( const KAboutData *data )
@@ -294,8 +294,8 @@ protected:
  *
  * In addition upon instantiation this template provides a central
  * KComponentData object for your component, accessible through the
- * static componentData() method. The componentName and catalogNames arguments
- * of the KGenericFactory constructor are passed to the KComponentData object.
+ * static componentData() method. The componentName argument
+ * of the KGenericFactory constructor is passed to the KComponentData object.
  *
  * The creation of the KComponentData object can be customized by inheriting
  * from this template class and re-implementing the virtual createComponentData
@@ -338,8 +338,8 @@ class KGenericFactory< KTypeList<Product, ProductListTail>,
     : public KGenericFactoryBase<KTypeList<Product, ProductListTail> >
 {
 public:
-    explicit KGenericFactory( const char *componentName  = 0, const char *catalogName  = 0 )
-        : KGenericFactoryBase<KTypeList<Product, ProductListTail> >(componentName, catalogName)
+    explicit KGenericFactory( const char *componentName  = 0 )
+        : KGenericFactoryBase<KTypeList<Product, ProductListTail> >(componentName)
     {}
     explicit KGenericFactory( const KAboutData *data )
         : KGenericFactoryBase<KTypeList<Product, ProductListTail> >(data)
diff --git a/staging/kde4support/src/kdecore/kglobal.cpp b/staging/kde4support/src/kdecore/kglobal.cpp
index 6d9133e..dcc07d5 100644
--- a/staging/kde4support/src/kdecore/kglobal.cpp
+++ b/staging/kde4support/src/kdecore/kglobal.cpp
@@ -82,14 +82,8 @@ class KGlobalPrivate
 
         KStandardDirs *dirs;
         KStringDict *stringDict;
-        QStringList catalogsToInsert;
 };
 
-KCatalogLoader::KCatalogLoader(const QString &catalogName)
-{
-    KLocalizedString::insertCatalog(catalogName);
-}
-
 K_GLOBAL_STATIC(KGlobalPrivate, globalData)
 
 #define PRIVATE_DATA KGlobalPrivate *d = globalData
@@ -122,11 +116,6 @@ bool KGlobal::hasMainComponent()
     return KComponentData::hasMainComponent();
 }
 
-void KGlobal::insertCatalog(const QString& catalog)
-{
-    KLocalizedString::insertCatalog(catalog);
-}
-
 KLocale *KGlobal::locale()
 {
     return KLocale::global();
diff --git a/staging/kde4support/src/kdecore/kglobal.h b/staging/kde4support/src/kdecore/kglobal.h
index 3196bd7..056847f 100644
--- a/staging/kde4support/src/kdecore/kglobal.h
+++ b/staging/kde4support/src/kdecore/kglobal.h
@@ -311,28 +311,6 @@ static struct K_GLOBAL_STATIC_STRUCT_NAME(NAME)                                \
 
 
 /**
- * This class is useful in libraries where you want to make sure that
- * anyone that uses your library will get the correct catalog loaded.
- * Just declare a static KCatalogLoader in the global namespace of one of
- * your cpp files and that will load your catalog once
- * the global klocale is created
- *
- * @param catalogName The name of your catalog
- *
- * @since 4.6.2
- *
- * Example:
- * @code
- * static const KCatalogLoader loader("libkdepim");
- * @endcode
- */
-class KDE4SUPPORT_DEPRECATED_EXPORT KCatalogLoader
-{
-    public:
-        KCatalogLoader(const QString &catalogName);
-};
-
-/**
  * Access to the KDE global objects.
  * KGlobal provides you with pointers of many central
  * objects that exist only once in the process. It is also
@@ -374,14 +352,6 @@ namespace KGlobal
     KDE4SUPPORT_DEPRECATED_EXPORT KSharedConfigPtr config();
 
     /**
-     * Inserts the catalog in the main locale object if it exists.
-     * Otherwise the catalog name is stored and added once the main locale gets created
-     * @since 4.6
-     * @deprecated since 5.0, use KLocalizedString::insertCatalog
-     */
-    KDE4SUPPORT_DEPRECATED_EXPORT void insertCatalog(const QString& catalog);
-
-    /**
      * Returns the global locale object.
      * @return the global locale object
      *
diff --git a/staging/kde4support/src/kdeui/kcolordialog.cpp b/staging/kde4support/src/kdeui/kcolordialog.cpp
index 338c0d2..ba336ae 100644
--- a/staging/kde4support/src/kdeui/kcolordialog.cpp
+++ b/staging/kde4support/src/kdeui/kcolordialog.cpp
@@ -652,8 +652,6 @@ KColorTable::readNamedColor(void)
         return; // Strings already present
     }
 
-    KLocalizedString::insertCatalog("kdelibs_colors4");
-
     //
     // Code somewhat inspired by KColorCollection.
     //
@@ -697,7 +695,7 @@ KColorTable::readNamedColor(void)
 
                 const QColor color(red, green, blue);
                 if (color.isValid()) {
-                    const QString colorName(i18nc("color", name.toLatin1().data()));
+                    const QString colorName(i18ndc("kdelibs_colors4", "color", name.toLatin1().data()));
                     list.append(colorName);
                     d->m_namedColorMap[ colorName ] = color;
                 }
diff --git a/staging/kde4support/src/kparts/factory.cpp b/staging/kde4support/src/kparts/factory.cpp
index 46903e4..ae5c731 100644
--- a/staging/kde4support/src/kparts/factory.cpp
+++ b/staging/kde4support/src/kparts/factory.cpp
@@ -30,7 +30,7 @@
 using namespace KParts;
 
 Factory::Factory( QObject *parent )
-: KPluginFactory( 0, 0, parent )
+: KPluginFactory( 0, parent )
 {
 }
 
diff --git a/staging/kdoctools/src/meinproc.cpp b/staging/kdoctools/src/meinproc.cpp
index ad13b0d..d375102 100644
--- a/staging/kdoctools/src/meinproc.cpp
+++ b/staging/kdoctools/src/meinproc.cpp
@@ -96,7 +96,7 @@ int main(int argc, char **argv) {
     QCoreApplication app( argc, argv );
     app.setApplicationName("meinproc");
     app.setApplicationVersion("5.0");
-    KLocalizedString::setApplicationCatalog("kio_help4");
+    KLocalizedString::setApplicationDomain("kio_help4");
 
     QCommandLineParser parser;
     parser.addHelpOption(QCoreApplication::translate("main", "KDE Translator for XML"));
diff --git a/staging/kservice/src/plugin/kpluginfactory.cpp b/staging/kservice/src/plugin/kpluginfactory.cpp
index 6bd2350..405d41e 100644
--- a/staging/kservice/src/plugin/kpluginfactory.cpp
+++ b/staging/kservice/src/plugin/kpluginfactory.cpp
@@ -32,7 +32,7 @@ Q_GLOBAL_STATIC(QObjectCleanupHandler, factorycleanup)
 
 extern int kLibraryDebugArea();
 
-KPluginFactory::KPluginFactory(const char *componentName, const char *catalogName, QObject *parent)
+KPluginFactory::KPluginFactory(const char *componentName, QObject *parent)
     : QObject(parent), d_ptr(new KPluginFactoryPrivate)
 {
     Q_D(KPluginFactory);
@@ -40,8 +40,6 @@ KPluginFactory::KPluginFactory(const char *componentName, const char *catalogNam
 
     if (componentName)
         d->componentName = QString::fromUtf8(componentName);
-    if (catalogName)
-        d->catalogName = QString::fromUtf8(catalogName);
 
     factorycleanup()->add(this);
 }
@@ -56,12 +54,6 @@ KPluginFactory::~KPluginFactory()
 {
     Q_D(KPluginFactory);
 
-#if 0 // TEMP_KF5_REENABLE
-    if (d->catalogInitialized && !d->catalogName.isEmpty() && KLocale::global()) {
-        KLocale::global()->removeCatalog(d->catalogName);
-    }
-#endif
-
     delete d_ptr;
 }
 
@@ -138,11 +130,6 @@ QObject *KPluginFactory::create(const char *iface, QWidget *parentWidget, QObjec
 
     QObject *obj = 0;
 
-    if (!d->catalogInitialized) {
-        d->catalogInitialized = true;
-        setupTranslations();
-    }
-
 #ifndef KDE_NO_DEPRECATED
     if (keyword.isEmpty()) {
 
@@ -186,18 +173,6 @@ QObject *KPluginFactory::create(const char *iface, QWidget *parentWidget, QObjec
     return obj;
 }
 
-void KPluginFactory::setupTranslations()
-{
-    Q_D(KPluginFactory);
-
-    if (d->catalogName.isEmpty())
-        return;
-
-#if 0 // TEMP_KF5_REENABLE
-    KLocale::global()->insertCatalog(d->catalogName);
-#endif
-}
-
 QStringList KPluginFactory::variantListToStringList(const QVariantList &list)
 {
     QStringList stringlist;
diff --git a/staging/kservice/src/plugin/kpluginfactory.h b/staging/kservice/src/plugin/kpluginfactory.h
index a5ea21b..5a5b95a 100644
--- a/staging/kservice/src/plugin/kpluginfactory.h
+++ b/staging/kservice/src/plugin/kpluginfactory.h
@@ -37,15 +37,15 @@ namespace KParts { class Part; }
 class name : public baseFactory \
 { \
     public: \
-        explicit name(const char * = 0, const char * = 0, QObject * = 0); \
+        explicit name(const char * = 0, QObject * = 0); \
         ~name(); \
     private: \
         void init(); \
 };
 
 #define K_PLUGIN_FACTORY_DEFINITION_WITH_BASEFACTORY(name, baseFactory, pluginRegistrations) \
-name::name(const char *componentName, const char *catalogName, QObject *parent) \
-    : baseFactory(componentName, catalogName, parent) { init(); } \
+name::name(const char *componentName, QObject *parent) \
+    : baseFactory(componentName, parent) { init(); } \
 void name::init() \
 { \
     pluginRegistrations \
@@ -82,7 +82,7 @@ name::~name() {}
  * class MyPlugin : public PluginInterface
  * {
  *     ...
- *     KAboutData pluginAboutData("componentName", "catalogName", i18n("My Component"), "1.0");
+ *     KAboutData pluginAboutData("componentName", i18n("My Component"), "1.0");
  *     KAboutData::registerPluginData(pluginAboutData);
  *     ...
  * };
@@ -146,7 +146,7 @@ name::~name() {}
  * class MyPlugin : public PluginInterface
  * {
  *     ...
- *     KAboutData pluginAboutData("componentName", "catalogName", i18n("My Component"), "1.0");
+ *     KAboutData pluginAboutData("componentName", i18n("My Component"), "1.0");
  *     KAboutData::registerPluginData(pluginAboutData);
  *     ...
  * };
@@ -203,18 +203,15 @@ class KSERVICE_EXPORT KPluginFactory : public QObject
     Q_DECLARE_PRIVATE(KPluginFactory)
 public:
     /**
-     * This constructor creates a factory for a plugin with the given \p componentName and
-     * \p catalogName.
+     * This constructor creates a factory for a plugin with the given \p componentName.
      *
      * \param componentName the component name of the plugin
-     * \param catalogName the translation catalog to use
      * \param parent a parent object
      */
-    explicit KPluginFactory(const char *componentName = 0, const char *catalogName = 0, QObject *parent = 0);
+    explicit KPluginFactory(const char *componentName = 0, QObject *parent = 0);
 
     /**
-     * This destroys the PluginFactory. It will remove the translation catalog for the plugin,
-     * if it was initialized.
+     * This destroys the PluginFactory.
      */
     virtual ~KPluginFactory();
 
@@ -356,8 +353,6 @@ protected:
         registerPlugin(keyword, &T::staticMetaObject, instanceFunction);
     }
 
-    virtual void setupTranslations();
-
     KPluginFactoryPrivate *const d_ptr;
 
     /**
diff --git a/staging/kunitconversion/src/kunitconversion/CMakeLists.txt b/staging/kunitconversion/src/kunitconversion/CMakeLists.txt
index 31e67ab..3d6771b 100644
--- a/staging/kunitconversion/src/kunitconversion/CMakeLists.txt
+++ b/staging/kunitconversion/src/kunitconversion/CMakeLists.txt
@@ -1,5 +1,7 @@
 project(kunitconversion)
 
+set(TRANSLATION_DOMAIN "libkunitconversion")
+
 if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION)
     set(KUNITCONVERSION_NO_SOLID TRUE)
     set(KUNITCONVERSION_NO_KIO TRUE)
diff --git a/staging/kunitconversion/src/kunitconversion/acceleration.cpp b/staging/kunitconversion/src/kunitconversion/acceleration.cpp
index b88604b..1a22330 100644
--- a/staging/kunitconversion/src/kunitconversion/acceleration.cpp
+++ b/staging/kunitconversion/src/kunitconversion/acceleration.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "acceleration.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/angle.cpp b/staging/kunitconversion/src/kunitconversion/angle.cpp
index 2b7bdf5..31999b0 100644
--- a/staging/kunitconversion/src/kunitconversion/angle.cpp
+++ b/staging/kunitconversion/src/kunitconversion/angle.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "angle.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/area.cpp b/staging/kunitconversion/src/kunitconversion/area.cpp
index b386eb5..c84ffd1 100644
--- a/staging/kunitconversion/src/kunitconversion/area.cpp
+++ b/staging/kunitconversion/src/kunitconversion/area.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "area.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/config-kunitconversion.h.cmake b/staging/kunitconversion/src/kunitconversion/config-kunitconversion.h.cmake
index cf98c34..601dc1c 100644
--- a/staging/kunitconversion/src/kunitconversion/config-kunitconversion.h.cmake
+++ b/staging/kunitconversion/src/kunitconversion/config-kunitconversion.h.cmake
@@ -1,3 +1,5 @@
+#define TRANSLATION_DOMAIN "${TRANSLATION_DOMAIN}"
+
 #cmakedefine01 KUNITCONVERSION_NO_SOLID
 #cmakedefine01 KUNITCONVERSION_NO_KIO
 
diff --git a/staging/kunitconversion/src/kunitconversion/converter.cpp b/staging/kunitconversion/src/kunitconversion/converter.cpp
index 76ff469..a433240 100644
--- a/staging/kunitconversion/src/kunitconversion/converter.cpp
+++ b/staging/kunitconversion/src/kunitconversion/converter.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "converter.h"
 
 #include <klocalizedstring.h>
@@ -63,8 +64,6 @@ public:
     QMap<int, UnitCategory *> categories;
     ConverterPrivate()
     {
-        KLocalizedString::insertCatalog("libkunitconversion");
-
         categories[InvalidCategory] = new Invalid;
         categories[LengthCategory] = new Length;
         categories[AreaCategory] = new Area();
diff --git a/staging/kunitconversion/src/kunitconversion/density.cpp b/staging/kunitconversion/src/kunitconversion/density.cpp
index 153ba19..878f199 100644
--- a/staging/kunitconversion/src/kunitconversion/density.cpp
+++ b/staging/kunitconversion/src/kunitconversion/density.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "density.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/energy.cpp b/staging/kunitconversion/src/kunitconversion/energy.cpp
index 95e3469..7e5f8b3 100644
--- a/staging/kunitconversion/src/kunitconversion/energy.cpp
+++ b/staging/kunitconversion/src/kunitconversion/energy.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "energy.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/force.cpp b/staging/kunitconversion/src/kunitconversion/force.cpp
index 347f8ba..d933a9f 100644
--- a/staging/kunitconversion/src/kunitconversion/force.cpp
+++ b/staging/kunitconversion/src/kunitconversion/force.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "force.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/frequency.cpp b/staging/kunitconversion/src/kunitconversion/frequency.cpp
index 0581aed..55a99e9 100644
--- a/staging/kunitconversion/src/kunitconversion/frequency.cpp
+++ b/staging/kunitconversion/src/kunitconversion/frequency.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "frequency.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/fuel_efficiency.cpp b/staging/kunitconversion/src/kunitconversion/fuel_efficiency.cpp
index 110fe40..6b16696 100644
--- a/staging/kunitconversion/src/kunitconversion/fuel_efficiency.cpp
+++ b/staging/kunitconversion/src/kunitconversion/fuel_efficiency.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "fuel_efficiency.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/kcurrencycode.cpp b/staging/kunitconversion/src/kunitconversion/kcurrencycode.cpp
index 97d7355..09e40ac 100644
--- a/staging/kunitconversion/src/kunitconversion/kcurrencycode.cpp
+++ b/staging/kunitconversion/src/kunitconversion/kcurrencycode.cpp
@@ -17,6 +17,7 @@
     Boston, MA 02110-1301, USA.
 */
 
+#include "config-kunitconversion.h"
 #include "kcurrencycode.h"
 
 #include <QtCore/QSharedData>
diff --git a/staging/kunitconversion/src/kunitconversion/length.cpp b/staging/kunitconversion/src/kunitconversion/length.cpp
index a2fabd7..29211d9 100644
--- a/staging/kunitconversion/src/kunitconversion/length.cpp
+++ b/staging/kunitconversion/src/kunitconversion/length.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "length.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/mass.cpp b/staging/kunitconversion/src/kunitconversion/mass.cpp
index a3809fd..a8dc69c 100644
--- a/staging/kunitconversion/src/kunitconversion/mass.cpp
+++ b/staging/kunitconversion/src/kunitconversion/mass.cpp
@@ -18,6 +18,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "mass.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/power.cpp b/staging/kunitconversion/src/kunitconversion/power.cpp
index c30defa..30e123e 100644
--- a/staging/kunitconversion/src/kunitconversion/power.cpp
+++ b/staging/kunitconversion/src/kunitconversion/power.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "power.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/pressure.cpp b/staging/kunitconversion/src/kunitconversion/pressure.cpp
index f365765..ed849bb 100644
--- a/staging/kunitconversion/src/kunitconversion/pressure.cpp
+++ b/staging/kunitconversion/src/kunitconversion/pressure.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "pressure.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/temperature.cpp b/staging/kunitconversion/src/kunitconversion/temperature.cpp
index 7f3a13c..982f6bb8 100644
--- a/staging/kunitconversion/src/kunitconversion/temperature.cpp
+++ b/staging/kunitconversion/src/kunitconversion/temperature.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "temperature.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/timeunit.cpp b/staging/kunitconversion/src/kunitconversion/timeunit.cpp
index 0840457..a9341c4 100644
--- a/staging/kunitconversion/src/kunitconversion/timeunit.cpp
+++ b/staging/kunitconversion/src/kunitconversion/timeunit.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "timeunit.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/unit.cpp b/staging/kunitconversion/src/kunitconversion/unit.cpp
index 467ca37..f8c6217 100644
--- a/staging/kunitconversion/src/kunitconversion/unit.cpp
+++ b/staging/kunitconversion/src/kunitconversion/unit.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "unit.h"
 
 #include <klocalizedstring.h>
diff --git a/staging/kunitconversion/src/kunitconversion/unitcategory.cpp b/staging/kunitconversion/src/kunitconversion/unitcategory.cpp
index d5b6d22..c7aaf27 100644
--- a/staging/kunitconversion/src/kunitconversion/unitcategory.cpp
+++ b/staging/kunitconversion/src/kunitconversion/unitcategory.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "unitcategory.h"
 #include <klocalizedstring.h>
 #include <QMap>
diff --git a/staging/kunitconversion/src/kunitconversion/value.cpp b/staging/kunitconversion/src/kunitconversion/value.cpp
index 03e43c4..228ecfe 100644
--- a/staging/kunitconversion/src/kunitconversion/value.cpp
+++ b/staging/kunitconversion/src/kunitconversion/value.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "value.h"
 #include "converter.h"
 #include <qmath.h>
diff --git a/staging/kunitconversion/src/kunitconversion/velocity.cpp b/staging/kunitconversion/src/kunitconversion/velocity.cpp
index 8e55d5e..1e5c817 100644
--- a/staging/kunitconversion/src/kunitconversion/velocity.cpp
+++ b/staging/kunitconversion/src/kunitconversion/velocity.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "velocity.h"
 #include "converter.h"
 #include <math.h>
diff --git a/staging/kunitconversion/src/kunitconversion/volume.cpp b/staging/kunitconversion/src/kunitconversion/volume.cpp
index b898217..02d8eee 100644
--- a/staging/kunitconversion/src/kunitconversion/volume.cpp
+++ b/staging/kunitconversion/src/kunitconversion/volume.cpp
@@ -17,6 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config-kunitconversion.h"
 #include "volume.h"
 #include "converter.h"
 #include <klocalizedstring.h>
diff --git a/staging/xmlgui/src/kcheckaccelerators.cpp b/staging/xmlgui/src/kcheckaccelerators.cpp
index 90d714c..5e9b78b 100644
--- a/staging/xmlgui/src/kcheckaccelerators.cpp
+++ b/staging/xmlgui/src/kcheckaccelerators.cpp
@@ -171,7 +171,7 @@ bool KCheckAccelerators::eventFilter(QObject* obj, QEvent* e)
             else
             {
                 QProcess* script=new QProcess(this);
-                script->start(copyWidgetTextCommand.arg(text).arg(KLocalizedString::applicationCatalog()));
+                script->start(copyWidgetTextCommand.arg(text).arg(QFile::decodeName(KLocalizedString::applicationDomain())));
                 connect(script,SIGNAL(finished(int,QProcess::ExitStatus)),script,SLOT(deleteLater()));
             }
             e->accept();

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to