[Libreoffice-commits] core.git: 4 commits - i18npool/inc i18npool/source i18npool/util

Matúš Kukan matus.kukan at collabora.com
Sun Jan 26 23:43:34 PST 2014


 i18npool/inc/cclass_unicode.hxx                                         |    3 
 i18npool/source/breakiterator/breakiteratorImpl.cxx                     |   14 +
 i18npool/source/breakiterator/breakiterator_unicode.cxx                 |    9 -
 i18npool/source/characterclassification/cclass_unicode.cxx              |   14 +
 i18npool/source/characterclassification/characterclassificationImpl.cxx |   14 +
 i18npool/source/characterclassification/unoscripttypedetector.cxx       |   15 +
 i18npool/source/collator/collatorImpl.cxx                               |   14 +
 i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx   |   15 +
 i18npool/source/localedata/localedata.cxx                               |    8 
 i18npool/source/nativenumber/nativenumbersupplier.cxx                   |    9 -
 i18npool/source/numberformatcode/numberformatcode.cxx                   |    8 
 i18npool/source/ordinalsuffix/ordinalsuffix.cxx                         |   11 +
 i18npool/source/registerservices/registerservices.cxx                   |   85 ----------
 i18npool/source/textconversion/textconversionImpl.cxx                   |   14 +
 i18npool/source/transliteration/ignoreKana.cxx                          |   10 +
 i18npool/source/transliteration/ignoreWidth.cxx                         |   10 +
 i18npool/source/transliteration/transliterationImpl.cxx                 |   14 +
 i18npool/source/transliteration/transliteration_caseignore.cxx          |   10 +
 i18npool/util/i18npool.component                                        |   48 +++--
 19 files changed, 184 insertions(+), 141 deletions(-)

New commits:
commit a4f17c00b16f5a983cd91ac5d2c43454f1775931
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Mon Jan 27 08:22:28 2014 +0100

    i18npool: Constructor feature for few more implementations.
    
    Change-Id: I018bbe39a30582f51cdd620b3bf3240456b7bd65

diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx
index 08c0677..e46dedc 100644
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx
@@ -36,7 +36,6 @@ U_CDECL_END
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::lang;
-using namespace ::rtl;
 
 namespace com { namespace sun { namespace star { namespace i18n {
 
@@ -462,4 +461,12 @@ BreakIterator_Unicode::getSupportedServiceNames(void) throw( uno::RuntimeExcepti
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_BreakIterator_Unicode_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::BreakIterator_Unicode());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index 00fb779..601184d0 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -30,8 +30,6 @@
 
 #define TRANSLITERATION_ALL
 #include <transliteration_body.hxx>
-#include <transliteration_caseignore.hxx>
-#include <transliteration_Ignore.hxx>
 #include <transliteration_OneToOne.hxx>
 #include <textToPronounce_zh.hxx>
 #include <numtotext_cjk.hxx>
@@ -47,7 +45,6 @@
 #define BREAKITERATOR_ALL
 #include <breakiterator_cjk.hxx>
 #include <breakiterator_th.hxx>
-#include <breakiterator_unicode.hxx>
 
 #include <indexentrysupplier.hxx>
 #include <indexentrysupplier_asian.hxx>
@@ -117,7 +114,6 @@ IMPL_CREATEINSTANCE( Calendar_ROC )
 IMPL_CREATEINSTANCE( Calendar_hijri )
 IMPL_CREATEINSTANCE( Calendar_jewish )
 IMPL_CREATEINSTANCE( Calendar_buddhist )
-IMPL_CREATEINSTANCE( BreakIterator_Unicode )
 IMPL_CREATEINSTANCE( BreakIterator_ja )
 IMPL_CREATEINSTANCE( BreakIterator_zh )
 IMPL_CREATEINSTANCE( BreakIterator_zh_TW )
@@ -138,13 +134,10 @@ IMPL_CREATEINSTANCE( Transliteration_l2u )
 IMPL_CREATEINSTANCE( Transliteration_sentencecase )
 IMPL_CREATEINSTANCE( Transliteration_titlecase )
 IMPL_CREATEINSTANCE( Transliteration_togglecase )
-IMPL_CREATEINSTANCE( Transliteration_caseignore )
 IMPL_CREATEINSTANCE( hiraganaToKatakana )
 IMPL_CREATEINSTANCE( katakanaToHiragana )
-IMPL_CREATEINSTANCE( ignoreKana )
 IMPL_CREATEINSTANCE( fullwidthToHalfwidth )
 IMPL_CREATEINSTANCE( halfwidthToFullwidth )
-IMPL_CREATEINSTANCE( ignoreWidth )
 
 IMPL_CREATEINSTANCE( smallToLarge_ja_JP)
 IMPL_CREATEINSTANCE( largeToSmall_ja_JP)
@@ -309,9 +302,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.Calendar_buddhist",
         "com.sun.star.i18n.Calendar_buddhist",
         &Calendar_buddhist_CreateInstance },
-    {   "com.sun.star.i18n.BreakIterator_Unicode",
-        "com.sun.star.i18n.BreakIterator_Unicode",
-        &BreakIterator_Unicode_CreateInstance },
     {   "com.sun.star.i18n.BreakIterator_ja",
         "com.sun.star.i18n.BreakIterator_ja",
         &BreakIterator_ja_CreateInstance },
@@ -364,31 +354,21 @@ static const struct InstancesArray {
         TRLT_IMPLNAME_PREFIX  "TOGGLE_CASE",
         &Transliteration_togglecase_CreateInstance },
     {   TRLT_SERVICELNAME_L10N,
-        TRLT_IMPLNAME_PREFIX  "IGNORE_CASE",
-        &Transliteration_caseignore_CreateInstance },
-    {   TRLT_SERVICELNAME_L10N,
         TRLT_IMPLNAME_PREFIX  "HIRAGANA_KATAKANA",
         &hiraganaToKatakana_CreateInstance },
     {   TRLT_SERVICELNAME_L10N,
         TRLT_IMPLNAME_PREFIX  "KATAKANA_HIRAGANA",
         &katakanaToHiragana_CreateInstance },
     {   TRLT_SERVICELNAME_L10N,
-        TRLT_IMPLNAME_PREFIX  "IGNORE_KANA",
-        &ignoreKana_CreateInstance },
-    {   TRLT_SERVICELNAME_L10N,
         TRLT_IMPLNAME_PREFIX  "FULLWIDTH_HALFWIDTH",
         &fullwidthToHalfwidth_CreateInstance },
     {   TRLT_SERVICELNAME_L10N,
         TRLT_IMPLNAME_PREFIX  "HALFWIDTH_FULLWIDTH",
         &halfwidthToFullwidth_CreateInstance },
-    {   TRLT_SERVICELNAME_L10N,
-        TRLT_IMPLNAME_PREFIX  "IGNORE_WIDTH",
-        &ignoreWidth_CreateInstance },
     IMPL_TRANSLITERATION_ITEM (smallToLarge_ja_JP),
     IMPL_TRANSLITERATION_ITEM (largeToSmall_ja_JP),
     IMPL_TRANSLITERATION_ITEM (ignoreTraditionalKanji_ja_JP),
     IMPL_TRANSLITERATION_ITEM (ignoreTraditionalKana_ja_JP),
-    IMPL_TRANSLITERATION_ITEM (ignoreKana),
     IMPL_TRANSLITERATION_ITEM (ignoreMinusSign_ja_JP),
     IMPL_TRANSLITERATION_ITEM (ignoreIterationMark_ja_JP),
     IMPL_TRANSLITERATION_ITEM (ignoreSeparator_ja_JP),
diff --git a/i18npool/source/transliteration/ignoreKana.cxx b/i18npool/source/transliteration/ignoreKana.cxx
index e525f5d..d051c66 100644
--- a/i18npool/source/transliteration/ignoreKana.cxx
+++ b/i18npool/source/transliteration/ignoreKana.cxx
@@ -21,6 +21,8 @@
 // prevent internal compiler error with MSVC6SP3
 #include <utility>
 
+#include <com/sun/star/uno/XComponentContext.hpp>
+
 #define TRANSLITERATION_Kana
 #include <transliteration_Ignore.hxx>
 #define TRANSLITERATION_hiraganaToKatakana
@@ -60,4 +62,12 @@ ignoreKana::transliterateChar2Char( sal_Unicode inChar) throw(RuntimeException,
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_Transliteration_IGNORE_KANA_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::ignoreKana());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/transliteration/ignoreWidth.cxx b/i18npool/source/transliteration/ignoreWidth.cxx
index aa4e87b..d0c5c93 100644
--- a/i18npool/source/transliteration/ignoreWidth.cxx
+++ b/i18npool/source/transliteration/ignoreWidth.cxx
@@ -20,6 +20,8 @@
 // prevent internal compiler error with MSVC6SP3
 #include <utility>
 
+#include <com/sun/star/uno/XComponentContext.hpp>
+
 #define TRANSLITERATION_Width
 #include <transliteration_Ignore.hxx>
 #define TRANSLITERATION_fullwidthToHalfwidth
@@ -59,4 +61,12 @@ ignoreWidth::transliterateChar2Char( sal_Unicode inChar) throw(RuntimeException,
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_Transliteration_IGNORE_WIDTH_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::ignoreWidth());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/transliteration/transliteration_caseignore.cxx b/i18npool/source/transliteration/transliteration_caseignore.cxx
index d42261b..a26021d 100644
--- a/i18npool/source/transliteration/transliteration_caseignore.cxx
+++ b/i18npool/source/transliteration/transliteration_caseignore.cxx
@@ -21,6 +21,8 @@
 // prevent internal compiler error with MSVC6SP3
 #include <utility>
 
+#include <com/sun/star/uno/XComponentContext.hpp>
+
 #include <i18nutil/oneToOneMapping.hxx>
 #include <i18nutil/casefolding.hxx>
 #include "transliteration_caseignore.hxx"
@@ -147,4 +149,12 @@ Transliteration_caseignore::compare(
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_Transliteration_IGNORE_CASE_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::Transliteration_caseignore());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component
index 198551d..88f72ea 100644
--- a/i18npool/util/i18npool.component
+++ b/i18npool/util/i18npool.component
@@ -23,7 +23,8 @@
       constructor="com_sun_star_i18n_BreakIterator_get_implementation">
     <service name="com.sun.star.i18n.BreakIterator"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.BreakIterator_Unicode">
+  <implementation name="com.sun.star.i18n.BreakIterator_Unicode"
+      constructor="com_sun_star_i18n_BreakIterator_Unicode_get_implementation">
     <service name="com.sun.star.i18n.BreakIterator_Unicode"/>
   </implementation>
   <implementation name="com.sun.star.i18n.BreakIterator_ja">
@@ -219,13 +220,16 @@
   <implementation name="com.sun.star.i18n.Transliteration.HIRAGANA_KATAKANA">
     <service name="com.sun.star.i18n.Transliteration.l10n"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.Transliteration.IGNORE_CASE">
+  <implementation name="com.sun.star.i18n.Transliteration.IGNORE_CASE"
+      constructor="com_sun_star_i18n_Transliteration_IGNORE_CASE_get_implementation">
     <service name="com.sun.star.i18n.Transliteration.l10n"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.Transliteration.IGNORE_KANA">
+  <implementation name="com.sun.star.i18n.Transliteration.IGNORE_KANA"
+      constructor="com_sun_star_i18n_Transliteration_IGNORE_KANA_get_implementation">
     <service name="com.sun.star.i18n.Transliteration.l10n"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.Transliteration.IGNORE_WIDTH">
+  <implementation name="com.sun.star.i18n.Transliteration.IGNORE_WIDTH"
+      constructor="com_sun_star_i18n_Transliteration_IGNORE_WIDTH_get_implementation">
     <service name="com.sun.star.i18n.Transliteration.l10n"/>
   </implementation>
   <implementation name="com.sun.star.i18n.Transliteration.KATAKANA_HIRAGANA">
commit c492e5156b20c98ee662b9b5f6ad874c51b95bf9
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Mon Jan 27 07:55:24 2014 +0100

    i18npool: Ctor feature for css.i18n.CharacterClassification(_Unicode).
    
    Change-Id: I5a0498a3871e2b90629af8ed6b725ff22f242fba

diff --git a/i18npool/inc/cclass_unicode.hxx b/i18npool/inc/cclass_unicode.hxx
index 859a239..bfbbc4a 100644
--- a/i18npool/inc/cclass_unicode.hxx
+++ b/i18npool/inc/cclass_unicode.hxx
@@ -69,9 +69,6 @@ public:
     virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( com::sun::star::uno::RuntimeException );
     virtual com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( com::sun::star::uno::RuntimeException );
 
-protected:
-    const sal_Char *cClass;
-
 private:
     Transliteration_casemapping *trans;
 
diff --git a/i18npool/source/characterclassification/cclass_unicode.cxx b/i18npool/source/characterclassification/cclass_unicode.cxx
index 2591726..df7a1d6 100644
--- a/i18npool/source/characterclassification/cclass_unicode.cxx
+++ b/i18npool/source/characterclassification/cclass_unicode.cxx
@@ -28,7 +28,6 @@
 
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
-using namespace ::rtl;
 
 namespace com { namespace sun { namespace star { namespace i18n {
 //  ----------------------------------------------------
@@ -46,7 +45,6 @@ cclass_Unicode::cclass_Unicode( const uno::Reference < XComponentContext >& rxCo
         cDecimalSep( '.' )
 {
     trans = new Transliteration_casemapping();
-    cClass = "com.sun.star.i18n.CharacterClassification_Unicode";
 }
 
 cclass_Unicode::~cclass_Unicode() {
@@ -264,7 +262,7 @@ ParseResult SAL_CALL cclass_Unicode::parsePredefinedToken(
 
 OUString SAL_CALL cclass_Unicode::getImplementationName() throw( RuntimeException )
 {
-    return OUString::createFromAscii(cClass);
+    return OUString("com.sun.star.i18n.CharacterClassification_Unicode");
 }
 
 sal_Bool SAL_CALL cclass_Unicode::supportsService(const OUString& rServiceName) throw( RuntimeException )
@@ -275,10 +273,18 @@ sal_Bool SAL_CALL cclass_Unicode::supportsService(const OUString& rServiceName)
 Sequence< OUString > SAL_CALL cclass_Unicode::getSupportedServiceNames() throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cClass);
+    aRet[0] = OUString("com.sun.star.i18n.CharacterClassification_Unicode");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_CharacterClassification_Unicode_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::cclass_Unicode(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/characterclassification/characterclassificationImpl.cxx b/i18npool/source/characterclassification/characterclassificationImpl.cxx
index 4897541..068fb0c 100644
--- a/i18npool/source/characterclassification/characterclassificationImpl.cxx
+++ b/i18npool/source/characterclassification/characterclassificationImpl.cxx
@@ -191,13 +191,11 @@ CharacterClassificationImpl::getLocaleSpecificCharacterClassification(const Loca
     throw RuntimeException();
 }
 
-const sal_Char cClass[] = "com.sun.star.i18n.CharacterClassification";
-
 OUString SAL_CALL
 CharacterClassificationImpl::getImplementationName(void)
                 throw( RuntimeException )
 {
-    return OUString::createFromAscii(cClass);
+    return OUString("com.sun.star.i18n.CharacterClassification");
 }
 
 sal_Bool SAL_CALL
@@ -211,10 +209,18 @@ Sequence< OUString > SAL_CALL
 CharacterClassificationImpl::getSupportedServiceNames(void) throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cClass);
+    aRet[0] = OUString("com.sun.star.i18n.CharacterClassification");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_CharacterClassification_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::CharacterClassificationImpl(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index 2f6a60d..00fb779 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -55,9 +55,6 @@
 #include <indexentrysupplier_common.hxx>
 #include <indexentrysupplier_default.hxx>
 
-#include <characterclassificationImpl.hxx>
-#include <cclass_unicode.hxx>
-
 #include <chaptercollator.hxx>
 #include <collator_unicode.hxx>
 
@@ -129,9 +126,6 @@ IMPL_CREATEINSTANCE( BreakIterator_th )
 IMPL_CREATEINSTANCE_CTX( ChapterCollator )
 IMPL_CREATEINSTANCE( Collator_Unicode )
 
-IMPL_CREATEINSTANCE_CTX( CharacterClassificationImpl )
-IMPL_CREATEINSTANCE_CTX( cclass_Unicode )
-
 IMPL_CREATEINSTANCE_CTX( InputSequenceCheckerImpl )
 IMPL_CREATEINSTANCE( InputSequenceChecker_th )
 IMPL_CREATEINSTANCE( InputSequenceChecker_hi )
@@ -339,12 +333,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.Collator_Unicode",
         "com.sun.star.i18n.Collator_Unicode",
         &Collator_Unicode_CreateInstance },
-    {   "com.sun.star.i18n.CharacterClassification",
-        "com.sun.star.i18n.CharacterClassification",
-        &CharacterClassificationImpl_CreateInstance },
-    {   "com.sun.star.i18n.CharacterClassification_Unicode",
-        "com.sun.star.i18n.CharacterClassification_Unicode",
-        &cclass_Unicode_CreateInstance },
     {   "com.sun.star.i18n.InputSequenceChecker",
         "com.sun.star.i18n.InputSequenceChecker",
         &InputSequenceCheckerImpl_CreateInstance },
diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component
index 4ad3adf..198551d 100644
--- a/i18npool/util/i18npool.component
+++ b/i18npool/util/i18npool.component
@@ -71,10 +71,12 @@
   <implementation name="com.sun.star.i18n.ChapterCollator">
     <service name="com.sun.star.i18n.ChapterCollator"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.CharacterClassification">
+  <implementation name="com.sun.star.i18n.CharacterClassification"
+      constructor="com_sun_star_i18n_CharacterClassification_get_implementation">
     <service name="com.sun.star.i18n.CharacterClassification"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.CharacterClassification_Unicode">
+  <implementation name="com.sun.star.i18n.CharacterClassification_Unicode"
+      constructor="com_sun_star_i18n_CharacterClassification_Unicode_get_implementation">
     <service name="com.sun.star.i18n.CharacterClassification_Unicode"/>
   </implementation>
   <implementation name="com.sun.star.i18n.Collator"
commit b192f590e68252881c3a545cbb81056851695010
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 17:20:33 2014 +0100

    i18npool: Ctor feature for another services.
    
    Change-Id: Id2346686ac2f6c537825d70cac1a537d09e351d5

diff --git a/i18npool/source/characterclassification/unoscripttypedetector.cxx b/i18npool/source/characterclassification/unoscripttypedetector.cxx
index b2b79e8..99e30d6 100644
--- a/i18npool/source/characterclassification/unoscripttypedetector.cxx
+++ b/i18npool/source/characterclassification/unoscripttypedetector.cxx
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include "unoscripttypedetector.hxx"
 #include <cppuhelper/supportsservice.hxx>
 #include <i18nutil/scripttypedetector.hxx>
@@ -61,12 +62,10 @@ UnoScriptTypeDetector::endOfCTLScriptType( const OUString& Text, sal_Int32 nPos
     return ScriptTypeDetector::endOfCTLScriptType(Text, nPos);
 }
 
-const sal_Char sDetector[] = "draft.com.sun.star.i18n.UnoScriptTypeDetector";
-
 OUString SAL_CALL
 UnoScriptTypeDetector::getImplementationName() throw( ::com::sun::star::uno::RuntimeException )
 {
-    return OUString(sDetector);
+    return OUString("com.sun.star.i18n.ScriptTypeDetector");
 }
 
 sal_Bool SAL_CALL
@@ -79,8 +78,16 @@ UnoScriptTypeDetector::supportsService(const OUString& ServiceName) throw( ::com
 UnoScriptTypeDetector::getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException )
 {
     ::com::sun::star::uno::Sequence< OUString > aRet(1);
-    aRet[0] = sDetector;
+    aRet[0] = OUString("com.sun.star.i18n.ScriptTypeDetector");
     return aRet;
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_ScriptTypeDetector_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoScriptTypeDetector());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
index c3ae334..1694f32 100644
--- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
+++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
@@ -26,7 +26,6 @@
 #include <nativenumbersupplier.hxx>
 #include <stdio.h>
 #include <string.h>
-#include <comphelper/processfactory.hxx>
 #include <cppuhelper/supportsservice.hxx>
 
 // Cyrillic upper case
@@ -57,7 +56,6 @@
 using namespace com::sun::star;
 using namespace com::sun::star::uno;
 using namespace com::sun::star::lang;
-using namespace ::rtl;
 
 namespace com { namespace sun { namespace star { namespace i18n {
 
@@ -1043,11 +1041,10 @@ OUString DefaultNumberingProvider::getNumberingIdentifier( sal_Int16 nNumberingT
     return OUString();
 }
 
-static const sal_Char cDefaultNumberingProvider[] = "com.sun.star.text.DefaultNumberingProvider";
 OUString DefaultNumberingProvider::getImplementationName(void)
                 throw( RuntimeException )
 {
-    return OUString::createFromAscii(cDefaultNumberingProvider);
+    return OUString("com.sun.star.text.DefaultNumberingProvider");
 }
 
 sal_Bool DefaultNumberingProvider::supportsService(const OUString& rServiceName)
@@ -1060,10 +1057,18 @@ Sequence< OUString > DefaultNumberingProvider::getSupportedServiceNames(void)
                 throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cDefaultNumberingProvider);
+    aRet[0] = OUString("com.sun.star.text.DefaultNumberingProvider");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_text_DefaultNumberingProvider_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::DefaultNumberingProvider(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/nativenumber/nativenumbersupplier.cxx b/i18npool/source/nativenumber/nativenumbersupplier.cxx
index 9b826be..d4ec433 100644
--- a/i18npool/source/nativenumber/nativenumbersupplier.cxx
+++ b/i18npool/source/nativenumber/nativenumbersupplier.cxx
@@ -28,7 +28,6 @@
 
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
-using namespace ::rtl;
 
 typedef struct {
     sal_Int16 number;
@@ -911,4 +910,12 @@ NativeNumberSupplier::getSupportedServiceNames() throw( RuntimeException )
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_NativeNumberSupplier_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::NativeNumberSupplier());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/numberformatcode/numberformatcode.cxx b/i18npool/source/numberformatcode/numberformatcode.cxx
index ab050fc..70cbaf1 100644
--- a/i18npool/source/numberformatcode/numberformatcode.cxx
+++ b/i18npool/source/numberformatcode/numberformatcode.cxx
@@ -281,4 +281,12 @@ NumberFormatCodeMapper::getSupportedServiceNames(void) throw( ::com::sun::star::
     return aRet;
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_NumberFormatCodeMapper_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new NumberFormatCodeMapper(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx b/i18npool/source/ordinalsuffix/ordinalsuffix.cxx
index 61cab41..5cc1a1b 100644
--- a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx
+++ b/i18npool/source/ordinalsuffix/ordinalsuffix.cxx
@@ -17,10 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include <boost/scoped_ptr.hpp>
 #include <i18nlangtag/languagetag.hxx>
 #include <i18nlangtag/languagetagicu.hxx>
-#include <comphelper/processfactory.hxx>
 #include <cppuhelper/supportsservice.hxx>
 #include <string.h>
 #include "ordinalsuffix.hxx"
@@ -31,7 +31,6 @@
 using namespace ::com::sun::star::i18n;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star;
-using namespace ::rtl;
 
 namespace com { namespace sun { namespace star { namespace i18n {
 
@@ -155,4 +154,12 @@ Sequence< OUString > SAL_CALL OrdinalSuffix::getSupportedServiceNames(void) thro
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_OrdinalSuffix_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::OrdinalSuffix());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index d0c6c34..2f6a60d 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -26,9 +26,6 @@
 #include <cppuhelper/weak.hxx>
 #include <osl/mutex.hxx>
 
-#include <numberformatcode.hxx>
-#include <nativenumbersupplier.hxx>
-#include <defaultnumberingprovider.hxx>
 #include <servicename.hxx>
 
 #define TRANSLITERATION_ALL
@@ -59,7 +56,6 @@
 #include <indexentrysupplier_default.hxx>
 
 #include <characterclassificationImpl.hxx>
-#include <unoscripttypedetector.hxx>
 #include <cclass_unicode.hxx>
 
 #include <chaptercollator.hxx>
@@ -69,11 +65,8 @@
 #include <inputsequencechecker_th.hxx>
 #include <inputsequencechecker_hi.hxx>
 
-#include <textconversionImpl.hxx>
 #include <textconversion.hxx>
 
-#include <ordinalsuffix.hxx>
-
 using namespace ::com::sun::star;
 
 #define IMPL_CREATEINSTANCE( ImplName ) \
@@ -112,9 +105,6 @@ typedef uno::Reference<
 
 using namespace i18n;
 
-IMPL_CREATEINSTANCE_CTX( NumberFormatCodeMapper )
-IMPL_CREATEINSTANCE( NativeNumberSupplier )
-IMPL_CREATEINSTANCE_CTX( DefaultNumberingProvider )
 IMPL_CREATEINSTANCE_CTX( IndexEntrySupplier )
 IMPL_CREATEINSTANCE_CTX( IndexEntrySupplier_asian )
 IMPL_CREATEINSTANCE_CTX( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable )
@@ -141,13 +131,11 @@ IMPL_CREATEINSTANCE( Collator_Unicode )
 
 IMPL_CREATEINSTANCE_CTX( CharacterClassificationImpl )
 IMPL_CREATEINSTANCE_CTX( cclass_Unicode )
-IMPL_CREATEINSTANCE( UnoScriptTypeDetector )
 
 IMPL_CREATEINSTANCE_CTX( InputSequenceCheckerImpl )
 IMPL_CREATEINSTANCE( InputSequenceChecker_th )
 IMPL_CREATEINSTANCE( InputSequenceChecker_hi )
 
-IMPL_CREATEINSTANCE_CTX( TextConversionImpl )
 IMPL_CREATEINSTANCE_CTX( TextConversion_ko )
 IMPL_CREATEINSTANCE_CTX( TextConversion_zh )
 
@@ -268,22 +256,11 @@ IMPL_CREATEINSTANCE( halfwidthKatakanaToFullwidthKatakana )
 IMPL_CREATEINSTANCE( fullwidthToHalfwidthLikeASC )
 IMPL_CREATEINSTANCE( halfwidthToFullwidthLikeJIS )
 
-IMPL_CREATEINSTANCE( OrdinalSuffix )
-
 static const struct InstancesArray {
         const sal_Char* pServiceNm;
         const sal_Char* pImplementationNm;
         FN_CreateInstance pFn;
 } aInstances[] = {
-    {   "com.sun.star.i18n.NumberFormatMapper",
-        "com.sun.star.i18n.NumberFormatCodeMapper",
-        & NumberFormatCodeMapper_CreateInstance },
-    {   "com.sun.star.i18n.NativeNumberSupplier",
-        "com.sun.star.i18n.NativeNumberSupplier",
-        & NativeNumberSupplier_CreateInstance },
-    {   "com.sun.star.text.DefaultNumberingProvider",
-        "com.sun.star.text.DefaultNumberingProvider",
-        &DefaultNumberingProvider_CreateInstance },
     {   "com.sun.star.i18n.IndexEntrySupplier",
         "com.sun.star.i18n.IndexEntrySupplier",
         &IndexEntrySupplier_CreateInstance },
@@ -362,9 +339,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.Collator_Unicode",
         "com.sun.star.i18n.Collator_Unicode",
         &Collator_Unicode_CreateInstance },
-    {   "com.sun.star.i18n.ScriptTypeDetector",
-        "com.sun.star.i18n.ScriptTypeDetector",
-        &UnoScriptTypeDetector_CreateInstance },
     {   "com.sun.star.i18n.CharacterClassification",
         "com.sun.star.i18n.CharacterClassification",
         &CharacterClassificationImpl_CreateInstance },
@@ -380,9 +354,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.InputSequenceChecker_hi",
         "com.sun.star.i18n.InputSequenceChecker_hi",
         &InputSequenceChecker_hi_CreateInstance },
-    {   "com.sun.star.i18n.TextConversion",
-        "com.sun.star.i18n.TextConversion",
-        &TextConversionImpl_CreateInstance },
     {   "com.sun.star.i18n.TextConversion_ko",
         "com.sun.star.i18n.TextConversion_ko",
         &TextConversion_ko_CreateInstance },
@@ -524,10 +495,6 @@ static const struct InstancesArray {
     IMPL_TRANSLITERATION_ITEM (NumToTextTianGan_zh),
     IMPL_TRANSLITERATION_ITEM (NumToTextDiZi_zh),
 
-    {   "com.sun.star.i18n.OrdinalSuffix",
-        "com.sun.star.i18n.OrdinalSuffix",
-        & OrdinalSuffix_CreateInstance },
-
     {   TRLT_SERVICELNAME_L10N,
         TRLT_IMPLNAME_PREFIX  "FULLWIDTHKATAKANA_HALFWIDTHKATAKANA",
         &fullwidthKatakanaToHalfwidthKatakana_CreateInstance },
diff --git a/i18npool/source/textconversion/textconversionImpl.cxx b/i18npool/source/textconversion/textconversionImpl.cxx
index 2fc29c9..00e1480 100644
--- a/i18npool/source/textconversion/textconversionImpl.cxx
+++ b/i18npool/source/textconversion/textconversionImpl.cxx
@@ -110,12 +110,10 @@ TextConversionImpl::getLocaleSpecificTextConversion(const Locale& rLocale) throw
         throw NoSupportException(); // aLocale is not supported
 }
 
-const sal_Char cTextConversion[] = "com.sun.star.i18n.TextConversion";
-
 OUString SAL_CALL
 TextConversionImpl::getImplementationName() throw( RuntimeException )
 {
-    return OUString::createFromAscii(cTextConversion);
+    return OUString("com.sun.star.i18n.TextConversion");
 }
 
 sal_Bool SAL_CALL
@@ -129,10 +127,18 @@ Sequence< OUString > SAL_CALL
 TextConversionImpl::getSupportedServiceNames() throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cTextConversion);
+    aRet[0] = OUString("com.sun.star.i18n.TextConversion");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_TextConversion_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new css::i18n::TextConversionImpl(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component
index 092596e..4ad3adf 100644
--- a/i18npool/util/i18npool.component
+++ b/i18npool/util/i18npool.component
@@ -124,19 +124,24 @@
       constructor="com_sun_star_i18n_LocaleDataImpl_get_implementation">
     <service name="com.sun.star.i18n.LocaleData"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.NativeNumberSupplier">
+  <implementation name="com.sun.star.i18n.NativeNumberSupplier"
+      constructor="com_sun_star_i18n_NativeNumberSupplier_get_implementation">
     <service name="com.sun.star.i18n.NativeNumberSupplier"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.NumberFormatCodeMapper">
+  <implementation name="com.sun.star.i18n.NumberFormatCodeMapper"
+      constructor="com_sun_star_i18n_NumberFormatCodeMapper_get_implementation">
     <service name="com.sun.star.i18n.NumberFormatMapper"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.OrdinalSuffix">
+  <implementation name="com.sun.star.i18n.OrdinalSuffix"
+      constructor="com_sun_star_i18n_OrdinalSuffix_get_implementation">
     <service name="com.sun.star.i18n.OrdinalSuffix"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.ScriptTypeDetector">
+  <implementation name="com.sun.star.i18n.ScriptTypeDetector"
+      constructor="com_sun_star_i18n_ScriptTypeDetector_get_implementation">
     <service name="com.sun.star.i18n.ScriptTypeDetector"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.TextConversion">
+  <implementation name="com.sun.star.i18n.TextConversion"
+      constructor="com_sun_star_i18n_TextConversion_get_implementation">
     <service name="com.sun.star.i18n.TextConversion"/>
   </implementation>
   <implementation name="com.sun.star.i18n.TextConversion_ko">
@@ -473,7 +478,8 @@
   <implementation name="com.sun.star.i18n.Transliteration.smallToLarge_ja_JP">
     <service name="com.sun.star.i18n.Transliteration.l10n"/>
   </implementation>
-  <implementation name="com.sun.star.text.DefaultNumberingProvider">
+  <implementation name="com.sun.star.text.DefaultNumberingProvider"
+      constructor="com_sun_star_text_DefaultNumberingProvider_get_implementation">
     <service name="com.sun.star.text.DefaultNumberingProvider"/>
   </implementation>
   <implementation name="com.sun.star.i18n.Transliteration.ignoreDiacritics_CTL">
commit 564c0aa65712b52f8d0fb187fd0f123be8c1fe3f
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 16:02:01 2014 +0100

    i18npool: Ctor feature for few general services.
    
    Change-Id: I1d489cacaf4717ab395b22a92e6dd6645cb92b1c

diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx
index a8e453d..8b9daea 100644
--- a/i18npool/source/breakiterator/breakiteratorImpl.cxx
+++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx
@@ -605,12 +605,10 @@ BreakIteratorImpl::getLocaleSpecificBreakIterator(const Locale& rLocale) throw (
     throw RuntimeException();
 }
 
-const sal_Char cBreakIterator[] = "com.sun.star.i18n.BreakIterator";
-
 OUString SAL_CALL
 BreakIteratorImpl::getImplementationName(void) throw( RuntimeException )
 {
-    return OUString::createFromAscii(cBreakIterator);
+    return OUString("com.sun.star.i18n.BreakIterator");
 }
 
 sal_Bool SAL_CALL
@@ -623,10 +621,18 @@ Sequence< OUString > SAL_CALL
 BreakIteratorImpl::getSupportedServiceNames(void) throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cBreakIterator);
+    aRet[0] = OUString("com.sun.star.i18n.BreakIterator");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_BreakIterator_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new com::sun::star::i18n::BreakIteratorImpl(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/collator/collatorImpl.cxx b/i18npool/source/collator/collatorImpl.cxx
index bb02ab2..a928b0b 100644
--- a/i18npool/source/collator/collatorImpl.cxx
+++ b/i18npool/source/collator/collatorImpl.cxx
@@ -212,11 +212,9 @@ CollatorImpl::loadCachedCollator(const lang::Locale& rLocale, const OUString& rS
     }
 }
 
-const sal_Char cCollator[] = "com.sun.star.i18n.Collator";
-
 OUString SAL_CALL CollatorImpl::getImplementationName() throw( RuntimeException )
 {
-    return OUString::createFromAscii(cCollator);
+    return OUString("com.sun.star.i18n.Collator");
 }
 
 sal_Bool SAL_CALL CollatorImpl::supportsService(const OUString& rServiceName)
@@ -229,10 +227,18 @@ Sequence< OUString > SAL_CALL
 CollatorImpl::getSupportedServiceNames() throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cCollator);
+    aRet[0] = OUString("com.sun.star.i18n.Collator");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_Collator_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new com::sun::star::i18n::CollatorImpl(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx
index da49400..37748ad 100644
--- a/i18npool/source/localedata/localedata.cxx
+++ b/i18npool/source/localedata/localedata.cxx
@@ -1664,4 +1664,12 @@ OUString LocaleDataImpl::getFirstLocaleServiceName( const com::sun::star::lang::
     return aVec;
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_LocaleDataImpl_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new LocaleDataImpl());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index 65b2ad2..d0c6c34 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -26,14 +26,12 @@
 #include <cppuhelper/weak.hxx>
 #include <osl/mutex.hxx>
 
-#include <localedata.hxx>
 #include <numberformatcode.hxx>
 #include <nativenumbersupplier.hxx>
 #include <defaultnumberingprovider.hxx>
 #include <servicename.hxx>
 
 #define TRANSLITERATION_ALL
-#include <transliterationImpl.hxx>
 #include <transliteration_body.hxx>
 #include <transliteration_caseignore.hxx>
 #include <transliteration_Ignore.hxx>
@@ -50,7 +48,6 @@
 #include <calendar_jewish.hxx>
 
 #define BREAKITERATOR_ALL
-#include <breakiteratorImpl.hxx>
 #include <breakiterator_cjk.hxx>
 #include <breakiterator_th.hxx>
 #include <breakiterator_unicode.hxx>
@@ -65,7 +62,6 @@
 #include <unoscripttypedetector.hxx>
 #include <cclass_unicode.hxx>
 
-#include <collatorImpl.hxx>
 #include <chaptercollator.hxx>
 #include <collator_unicode.hxx>
 
@@ -118,7 +114,6 @@ using namespace i18n;
 
 IMPL_CREATEINSTANCE_CTX( NumberFormatCodeMapper )
 IMPL_CREATEINSTANCE( NativeNumberSupplier )
-IMPL_CREATEINSTANCE( LocaleDataImpl )
 IMPL_CREATEINSTANCE_CTX( DefaultNumberingProvider )
 IMPL_CREATEINSTANCE_CTX( IndexEntrySupplier )
 IMPL_CREATEINSTANCE_CTX( IndexEntrySupplier_asian )
@@ -135,7 +130,6 @@ IMPL_CREATEINSTANCE( Calendar_ROC )
 IMPL_CREATEINSTANCE( Calendar_hijri )
 IMPL_CREATEINSTANCE( Calendar_jewish )
 IMPL_CREATEINSTANCE( Calendar_buddhist )
-IMPL_CREATEINSTANCE_CTX( BreakIteratorImpl )
 IMPL_CREATEINSTANCE( BreakIterator_Unicode )
 IMPL_CREATEINSTANCE( BreakIterator_ja )
 IMPL_CREATEINSTANCE( BreakIterator_zh )
@@ -143,12 +137,10 @@ IMPL_CREATEINSTANCE( BreakIterator_zh_TW )
 IMPL_CREATEINSTANCE( BreakIterator_ko )
 IMPL_CREATEINSTANCE( BreakIterator_th )
 IMPL_CREATEINSTANCE_CTX( ChapterCollator )
-IMPL_CREATEINSTANCE_CTX( CollatorImpl )
 IMPL_CREATEINSTANCE( Collator_Unicode )
 
 IMPL_CREATEINSTANCE_CTX( CharacterClassificationImpl )
 IMPL_CREATEINSTANCE_CTX( cclass_Unicode )
-IMPL_CREATEINSTANCE_CTX( TransliterationImpl )
 IMPL_CREATEINSTANCE( UnoScriptTypeDetector )
 
 IMPL_CREATEINSTANCE_CTX( InputSequenceCheckerImpl )
@@ -283,9 +275,6 @@ static const struct InstancesArray {
         const sal_Char* pImplementationNm;
         FN_CreateInstance pFn;
 } aInstances[] = {
-    {   "com.sun.star.i18n.LocaleData",
-        "com.sun.star.i18n.LocaleDataImpl",
-        & LocaleDataImpl_CreateInstance },
     {   "com.sun.star.i18n.NumberFormatMapper",
         "com.sun.star.i18n.NumberFormatCodeMapper",
         & NumberFormatCodeMapper_CreateInstance },
@@ -349,9 +338,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.Calendar_buddhist",
         "com.sun.star.i18n.Calendar_buddhist",
         &Calendar_buddhist_CreateInstance },
-    {   "com.sun.star.i18n.BreakIterator",
-        "com.sun.star.i18n.BreakIterator",
-        &BreakIteratorImpl_CreateInstance },
     {   "com.sun.star.i18n.BreakIterator_Unicode",
         "com.sun.star.i18n.BreakIterator_Unicode",
         &BreakIterator_Unicode_CreateInstance },
@@ -370,9 +356,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.BreakIterator_th",
         "com.sun.star.i18n.BreakIterator_th",
         &BreakIterator_th_CreateInstance },
-    {   "com.sun.star.i18n.Collator",
-        "com.sun.star.i18n.Collator",
-        &CollatorImpl_CreateInstance },
     {   "com.sun.star.i18n.ChapterCollator",
         "com.sun.star.i18n.ChapterCollator",
         &ChapterCollator_CreateInstance },
@@ -406,9 +389,6 @@ static const struct InstancesArray {
     {   "com.sun.star.i18n.TextConversion_zh",
         "com.sun.star.i18n.TextConversion_zh",
         &TextConversion_zh_CreateInstance },
-    {   TRLT_SERVICELNAME,
-        TRLT_IMPLNAME ,
-        &TransliterationImpl_CreateInstance },
     {   TRLT_SERVICELNAME_L10N,
         TRLT_IMPLNAME_PREFIX  "UPPERCASE_LOWERCASE",
         &Transliteration_u2l_CreateInstance },
diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx
index 0a2e1f5..ebdb16f 100644
--- a/i18npool/source/transliteration/transliterationImpl.cxx
+++ b/i18npool/source/transliteration/transliterationImpl.cxx
@@ -632,12 +632,10 @@ TransliterationImpl::loadModuleByName( const OUString& implName,
     return body.is();
 }
 
-const sal_Char cTrans[] = "com.sun.star.i18n.Transliteration";
-
 OUString SAL_CALL
 TransliterationImpl::getImplementationName() throw( RuntimeException )
 {
-    return OUString::createFromAscii(cTrans);
+    return OUString("com.sun.star.i18n.Transliteration");
 }
 
 sal_Bool SAL_CALL
@@ -650,10 +648,18 @@ Sequence< OUString > SAL_CALL
 TransliterationImpl::getSupportedServiceNames(void) throw( RuntimeException )
 {
     Sequence< OUString > aRet(1);
-    aRet[0] = OUString::createFromAscii(cTrans);
+    aRet[0] = OUString("com.sun.star.i18n.Transliteration");
     return aRet;
 }
 
 } } } }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_i18n_Transliteration_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new com::sun::star::i18n::TransliterationImpl(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component
index d2bf07e..092596e 100644
--- a/i18npool/util/i18npool.component
+++ b/i18npool/util/i18npool.component
@@ -19,7 +19,8 @@
 
 <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
     prefix="i18npool" xmlns="http://openoffice.org/2010/uno-components">
-  <implementation name="com.sun.star.i18n.BreakIterator">
+  <implementation name="com.sun.star.i18n.BreakIterator"
+      constructor="com_sun_star_i18n_BreakIterator_get_implementation">
     <service name="com.sun.star.i18n.BreakIterator"/>
   </implementation>
   <implementation name="com.sun.star.i18n.BreakIterator_Unicode">
@@ -76,7 +77,8 @@
   <implementation name="com.sun.star.i18n.CharacterClassification_Unicode">
     <service name="com.sun.star.i18n.CharacterClassification_Unicode"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.Collator">
+  <implementation name="com.sun.star.i18n.Collator"
+      constructor="com_sun_star_i18n_Collator_get_implementation">
     <service name="com.sun.star.i18n.Collator"/>
   </implementation>
   <implementation name="com.sun.star.i18n.Collator_Unicode">
@@ -118,7 +120,8 @@
   <implementation name="com.sun.star.i18n.InputSequenceChecker_th">
     <service name="com.sun.star.i18n.InputSequenceChecker_th"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.LocaleDataImpl">
+  <implementation name="com.sun.star.i18n.LocaleDataImpl"
+      constructor="com_sun_star_i18n_LocaleDataImpl_get_implementation">
     <service name="com.sun.star.i18n.LocaleData"/>
   </implementation>
   <implementation name="com.sun.star.i18n.NativeNumberSupplier">
@@ -142,7 +145,8 @@
   <implementation name="com.sun.star.i18n.TextConversion_zh">
     <service name="com.sun.star.i18n.TextConversion_zh"/>
   </implementation>
-  <implementation name="com.sun.star.i18n.Transliteration">
+  <implementation name="com.sun.star.i18n.Transliteration"
+      constructor="com_sun_star_i18n_Transliteration_get_implementation">
     <service name="com.sun.star.i18n.Transliteration"/>
   </implementation>
   <implementation name="com.sun.star.i18n.Transliteration.CharToNumEastIndic_ar">


More information about the Libreoffice-commits mailing list