Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
11 : : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : : * contributor license agreements. See the NOTICE file distributed
13 : : * with this work for additional information regarding copyright
14 : : * ownership. The ASF licenses this file to you under the Apache
15 : : * License, Version 2.0 (the "License"); you may not use this file
16 : : * except in compliance with the License. You may obtain a copy of
17 : : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : : */
19 : :
20 : : #include <com/sun/star/lang/XSingleServiceFactory.hpp>
21 : : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
22 : : #include <com/sun/star/registry/XRegistryKey.hpp>
23 : :
24 : : #include <cppuhelper/factory.hxx>
25 : : #include <cppuhelper/weak.hxx>
26 : : #include <osl/mutex.hxx>
27 : :
28 : : #include <localedata.hxx>
29 : : #include <numberformatcode.hxx>
30 : : #include <nativenumbersupplier.hxx>
31 : : #include <defaultnumberingprovider.hxx>
32 : : #include <servicename.hxx>
33 : :
34 : : #define TRANSLITERATION_ALL
35 : : #include <transliterationImpl.hxx>
36 : : #include <transliteration_body.hxx>
37 : : #include <transliteration_caseignore.hxx>
38 : : #include <transliteration_Ignore.hxx>
39 : : #include <transliteration_OneToOne.hxx>
40 : : #include <textToPronounce_zh.hxx>
41 : : #include <numtotext_cjk.hxx>
42 : : #include <numtochar.hxx>
43 : : #include <texttonum.hxx>
44 : : #include <chartonum.hxx>
45 : :
46 : : #include <calendarImpl.hxx>
47 : : #include <calendar_gregorian.hxx>
48 : : #include <calendar_hijri.hxx>
49 : : #include <calendar_jewish.hxx>
50 : :
51 : : #define BREAKITERATOR_ALL
52 : : #include <breakiteratorImpl.hxx>
53 : : #include <breakiterator_cjk.hxx>
54 : : #include <breakiterator_th.hxx>
55 : : #include <breakiterator_unicode.hxx>
56 : :
57 : : #include <indexentrysupplier.hxx>
58 : : #include <indexentrysupplier_asian.hxx>
59 : : #include <indexentrysupplier_ja_phonetic.hxx>
60 : : #include <indexentrysupplier_common.hxx>
61 : : #include <indexentrysupplier_default.hxx>
62 : :
63 : : #define CCLASS_ALL
64 : : #include <characterclassificationImpl.hxx>
65 : : #include <unoscripttypedetector.hxx>
66 : : #include <cclass_unicode.hxx>
67 : :
68 : : #define COLLATOR_ALL
69 : : #include <collatorImpl.hxx>
70 : : #include <chaptercollator.hxx>
71 : : #include <collator_unicode.hxx>
72 : :
73 : : #include <inputsequencechecker.hxx>
74 : : #include <inputsequencechecker_th.hxx>
75 : : #include <inputsequencechecker_hi.hxx>
76 : :
77 : : #include <textconversionImpl.hxx>
78 : : #include <textconversion.hxx>
79 : :
80 : : #include <ordinalsuffix.hxx>
81 : :
82 : : #define IMPL_CREATEINSTANCE( ImplName ) \
83 : : ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > \
84 : : SAL_CALL ImplName##_CreateInstance( \
85 : : SAL_UNUSED_PARAMETER const ::com::sun::star::uno::Reference< \
86 : : ::com::sun::star::lang::XMultiServiceFactory >& ) \
87 : : { \
88 : : return ::com::sun::star::uno::Reference < \
89 : : ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) \
90 : : new ImplName ); \
91 : : }
92 : :
93 : : #define IMPL_CREATEINSTANCE_MSF( ImplName ) \
94 : : ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > \
95 : : SAL_CALL ImplName##_CreateInstance( \
96 : : const ::com::sun::star::uno::Reference< \
97 : : ::com::sun::star::lang::XMultiServiceFactory >& rxMSF ) \
98 : : { \
99 : : return ::com::sun::star::uno::Reference < \
100 : : ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) \
101 : : new ImplName( rxMSF ) ); \
102 : : }
103 : :
104 : : typedef ::com::sun::star::uno::Reference<
105 : : ::com::sun::star::uno::XInterface > (SAL_CALL *FN_CreateInstance)(
106 : : const ::com::sun::star::uno::Reference<
107 : : ::com::sun::star::lang::XMultiServiceFactory >& );
108 : :
109 : : #define IMPL_TRANSLITERATION_ITEM( implName ) \
110 : : { TRLT_SERVICELNAME_L10N, \
111 : : TRLT_IMPLNAME_PREFIX #implName, \
112 : : &implName##_CreateInstance }
113 : :
114 : : // -------------------------------------------------------------------------------------
115 : :
116 : : using namespace ::com::sun::star::i18n;
117 : :
118 [ + - ]: 16910 : IMPL_CREATEINSTANCE_MSF( NumberFormatCodeMapper )
119 [ # # ]: 0 : IMPL_CREATEINSTANCE( NativeNumberSupplier )
120 [ + - ]: 66833 : IMPL_CREATEINSTANCE( LocaleData )
121 [ + - ]: 59 : IMPL_CREATEINSTANCE_MSF( DefaultNumberingProvider )
122 [ + - ]: 4 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier )
123 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_asian )
124 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable )
125 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant )
126 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable )
127 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant )
128 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_Unicode )
129 [ + - ]: 199 : IMPL_CREATEINSTANCE_MSF( CalendarImpl )
130 [ + - ]: 199 : IMPL_CREATEINSTANCE( Calendar_gregorian )
131 [ # # ]: 0 : IMPL_CREATEINSTANCE( Calendar_hanja )
132 [ # # ]: 0 : IMPL_CREATEINSTANCE( Calendar_gengou )
133 [ # # ]: 0 : IMPL_CREATEINSTANCE( Calendar_ROC )
134 [ # # ]: 0 : IMPL_CREATEINSTANCE( Calendar_hijri )
135 [ # # ]: 0 : IMPL_CREATEINSTANCE( Calendar_jewish )
136 [ # # ]: 0 : IMPL_CREATEINSTANCE( Calendar_buddhist )
137 [ + - ]: 26017 : IMPL_CREATEINSTANCE_MSF( BreakIteratorImpl )
138 [ + - ]: 1991 : IMPL_CREATEINSTANCE( BreakIterator_Unicode )
139 [ # # ]: 0 : IMPL_CREATEINSTANCE( BreakIterator_ja )
140 [ + - ]: 3 : IMPL_CREATEINSTANCE( BreakIterator_zh )
141 [ # # ]: 0 : IMPL_CREATEINSTANCE( BreakIterator_zh_TW )
142 [ # # ]: 0 : IMPL_CREATEINSTANCE( BreakIterator_ko )
143 [ + - ]: 3 : IMPL_CREATEINSTANCE( BreakIterator_th )
144 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( ChapterCollator )
145 [ + - ]: 581 : IMPL_CREATEINSTANCE_MSF( CollatorImpl )
146 [ + - ]: 573 : IMPL_CREATEINSTANCE( Collator_Unicode )
147 : :
148 [ + - ]: 34872 : IMPL_CREATEINSTANCE_MSF( CharacterClassificationImpl )
149 [ + - ][ + - ]: 34872 : IMPL_CREATEINSTANCE_MSF( cclass_Unicode )
150 [ + - ]: 365 : IMPL_CREATEINSTANCE_MSF( TransliterationImpl )
151 [ # # ]: 0 : IMPL_CREATEINSTANCE( UnoScriptTypeDetector )
152 : :
153 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( InputSequenceCheckerImpl )
154 [ # # ]: 0 : IMPL_CREATEINSTANCE( InputSequenceChecker_th )
155 [ # # ]: 0 : IMPL_CREATEINSTANCE( InputSequenceChecker_hi )
156 : :
157 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( TextConversionImpl )
158 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( TextConversion_ko )
159 [ # # ]: 0 : IMPL_CREATEINSTANCE_MSF( TextConversion_zh )
160 : :
161 [ # # ]: 0 : IMPL_CREATEINSTANCE( Transliteration_u2l )
162 [ + - ]: 6 : IMPL_CREATEINSTANCE( Transliteration_l2u )
163 [ # # ]: 0 : IMPL_CREATEINSTANCE( Transliteration_sentencecase )
164 [ # # ]: 0 : IMPL_CREATEINSTANCE( Transliteration_titlecase )
165 [ # # ]: 0 : IMPL_CREATEINSTANCE( Transliteration_togglecase )
166 [ + - ]: 165 : IMPL_CREATEINSTANCE( Transliteration_caseignore )
167 [ # # ]: 0 : IMPL_CREATEINSTANCE( hiraganaToKatakana )
168 [ # # ]: 0 : IMPL_CREATEINSTANCE( katakanaToHiragana )
169 [ + - ]: 67 : IMPL_CREATEINSTANCE( ignoreKana )
170 [ # # ]: 0 : IMPL_CREATEINSTANCE( fullwidthToHalfwidth )
171 [ # # ]: 0 : IMPL_CREATEINSTANCE( halfwidthToFullwidth )
172 [ + - ]: 123 : IMPL_CREATEINSTANCE( ignoreWidth )
173 : :
174 [ # # ]: 0 : IMPL_CREATEINSTANCE( smallToLarge_ja_JP)
175 [ # # ]: 0 : IMPL_CREATEINSTANCE( largeToSmall_ja_JP)
176 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreTraditionalKanji_ja_JP)
177 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreTraditionalKana_ja_JP)
178 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreMinusSign_ja_JP)
179 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreIterationMark_ja_JP)
180 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreSeparator_ja_JP)
181 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreZiZu_ja_JP)
182 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreBaFa_ja_JP)
183 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreTiJi_ja_JP)
184 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreHyuByu_ja_JP)
185 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreSeZe_ja_JP)
186 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreIandEfollowedByYa_ja_JP)
187 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreKiKuFollowedBySa_ja_JP)
188 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreSize_ja_JP)
189 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreProlongedSoundMark_ja_JP)
190 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreMiddleDot_ja_JP)
191 [ # # ]: 0 : IMPL_CREATEINSTANCE( ignoreSpace_ja_JP)
192 : :
193 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToChuyin_zh_TW )
194 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToPinyin_zh_CN )
195 : :
196 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharLower_zh_CN )
197 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharUpper_zh_CN )
198 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharLower_zh_TW )
199 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharUpper_zh_TW )
200 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharHalfwidth )
201 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharFullwidth )
202 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharKanjiShort_ja_JP )
203 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharKanjiTraditional_ja_JP )
204 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharHangul_ko )
205 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharLower_ko )
206 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharUpper_ko )
207 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharIndic_ar )
208 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharEastIndic_ar )
209 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToCharIndic_hi )
210 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToChar_th )
211 : :
212 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumLower_zh_CN )
213 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumUpper_zh_CN )
214 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumLower_zh_TW )
215 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumUpper_zh_TW )
216 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumFullwidth )
217 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumKanjiShort_ja_JP )
218 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumKanjiTraditional_ja_JP )
219 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumHangul_ko )
220 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumLower_ko )
221 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumUpper_ko )
222 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumIndic_ar )
223 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumEastIndic_ar )
224 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNumIndic_hi )
225 [ # # ]: 0 : IMPL_CREATEINSTANCE( CharToNum_th )
226 : :
227 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextLower_zh_CN )
228 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextUpper_zh_CN )
229 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextLower_zh_TW )
230 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextUpper_zh_TW )
231 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFullwidth_zh_CN )
232 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFullwidth_zh_TW )
233 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFullwidth_ja_JP )
234 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFullwidth_ko )
235 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextKanjiLongModern_ja_JP )
236 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextKanjiLongTraditional_ja_JP )
237 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextKanjiShortModern_ja_JP )
238 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextKanjiShortTraditional_ja_JP )
239 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFormalHangul_ko )
240 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFormalLower_ko )
241 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextFormalUpper_ko )
242 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextInformalHangul_ko )
243 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextInformalUpper_ko )
244 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextInformalLower_ko )
245 : :
246 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumLower_zh_CN )
247 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumUpper_zh_CN )
248 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumLower_zh_TW )
249 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumUpper_zh_TW )
250 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumKanjiLongModern_ja_JP )
251 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumKanjiLongTraditional_ja_JP )
252 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumFormalHangul_ko )
253 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumFormalLower_ko )
254 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumFormalUpper_ko )
255 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumInformalHangul_ko )
256 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumInformalUpper_ko )
257 [ # # ]: 0 : IMPL_CREATEINSTANCE( TextToNumInformalLower_ko )
258 : :
259 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextDate_zh )
260 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextAIUFullWidth_ja_JP )
261 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextAIUHalfWidth_ja_JP )
262 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextIROHAFullWidth_ja_JP )
263 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextIROHAHalfWidth_ja_JP )
264 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextCircledNumber )
265 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextHangulJamo_ko )
266 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextHangulSyllable_ko )
267 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextHangulCircledJamo_ko )
268 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextHangulCircledSyllable_ko )
269 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextTianGan_zh )
270 [ # # ]: 0 : IMPL_CREATEINSTANCE( NumToTextDiZi_zh )
271 : :
272 [ # # ]: 0 : IMPL_CREATEINSTANCE( fullwidthKatakanaToHalfwidthKatakana )
273 [ # # ]: 0 : IMPL_CREATEINSTANCE( halfwidthKatakanaToFullwidthKatakana )
274 [ # # ]: 0 : IMPL_CREATEINSTANCE( fullwidthToHalfwidthLikeASC )
275 [ # # ]: 0 : IMPL_CREATEINSTANCE( halfwidthToFullwidthLikeJIS )
276 : :
277 [ + - ]: 3 : IMPL_CREATEINSTANCE_MSF( OrdinalSuffix )
278 : :
279 : : static const struct InstancesArray {
280 : : const sal_Char* pServiceNm;
281 : : const sal_Char* pImplementationNm;
282 : : FN_CreateInstance pFn;
283 : : } aInstances[] = {
284 : : { "com.sun.star.i18n.LocaleData",
285 : : "com.sun.star.i18n.LocaleData",
286 : : & LocaleData_CreateInstance },
287 : : { "com.sun.star.i18n.NumberFormatMapper",
288 : : "com.sun.star.i18n.NumberFormatCodeMapper",
289 : : & NumberFormatCodeMapper_CreateInstance },
290 : : { "com.sun.star.i18n.NativeNumberSupplier",
291 : : "com.sun.star.i18n.NativeNumberSupplier",
292 : : & NativeNumberSupplier_CreateInstance },
293 : : { "com.sun.star.text.DefaultNumberingProvider",
294 : : "com.sun.star.text.DefaultNumberingProvider",
295 : : &DefaultNumberingProvider_CreateInstance },
296 : : { "com.sun.star.i18n.IndexEntrySupplier",
297 : : "com.sun.star.i18n.IndexEntrySupplier",
298 : : &IndexEntrySupplier_CreateInstance },
299 : : { "com.sun.star.i18n.IndexEntrySupplier_asian",
300 : : "com.sun.star.i18n.IndexEntrySupplier_asian",
301 : : &IndexEntrySupplier_asian_CreateInstance },
302 : : { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)",
303 : : "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)",
304 : : &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable_CreateInstance },
305 : : { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)",
306 : : "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)",
307 : : &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable_CreateInstance },
308 : : { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)",
309 : : "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)",
310 : : &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable_CreateInstance },
311 : : { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)",
312 : : "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)",
313 : : &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant_CreateInstance },
314 : : { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)",
315 : : "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)",
316 : : &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable_CreateInstance },
317 : : { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)",
318 : : "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)",
319 : : &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant_CreateInstance },
320 : : { "com.sun.star.i18n.IndexEntrySupplier_Unicode",
321 : : "com.sun.star.i18n.IndexEntrySupplier_Unicode",
322 : : &IndexEntrySupplier_Unicode_CreateInstance },
323 : : { "com.sun.star.i18n.LocaleCalendar",
324 : : "com.sun.star.i18n.CalendarImpl",
325 : : &CalendarImpl_CreateInstance },
326 : : { "com.sun.star.i18n.Calendar_gregorian",
327 : : "com.sun.star.i18n.Calendar_gregorian",
328 : : &Calendar_gregorian_CreateInstance },
329 : : { "com.sun.star.i18n.Calendar_gengou",
330 : : "com.sun.star.i18n.Calendar_gengou",
331 : : &Calendar_gengou_CreateInstance },
332 : : { "com.sun.star.i18n.Calendar_ROC",
333 : : "com.sun.star.i18n.Calendar_ROC",
334 : : &Calendar_ROC_CreateInstance },
335 : : { "com.sun.star.i18n.Calendar_hanja_yoil",
336 : : "com.sun.star.i18n.Calendar_hanja_yoil",
337 : : &Calendar_hanja_CreateInstance },
338 : : { "com.sun.star.i18n.Calendar_hanja",
339 : : "com.sun.star.i18n.Calendar_hanja",
340 : : &Calendar_hanja_CreateInstance },
341 : : { "com.sun.star.i18n.Calendar_hijri",
342 : : "com.sun.star.i18n.Calendar_hijri",
343 : : &Calendar_hijri_CreateInstance },
344 : : { "com.sun.star.i18n.Calendar_jewish",
345 : : "com.sun.star.i18n.Calendar_jewish",
346 : : &Calendar_jewish_CreateInstance },
347 : : { "com.sun.star.i18n.Calendar_buddhist",
348 : : "com.sun.star.i18n.Calendar_buddhist",
349 : : &Calendar_buddhist_CreateInstance },
350 : : { "com.sun.star.i18n.BreakIterator",
351 : : "com.sun.star.i18n.BreakIterator",
352 : : &BreakIteratorImpl_CreateInstance },
353 : : { "com.sun.star.i18n.BreakIterator_Unicode",
354 : : "com.sun.star.i18n.BreakIterator_Unicode",
355 : : &BreakIterator_Unicode_CreateInstance },
356 : : { "com.sun.star.i18n.BreakIterator_ja",
357 : : "com.sun.star.i18n.BreakIterator_ja",
358 : : &BreakIterator_ja_CreateInstance },
359 : : { "com.sun.star.i18n.BreakIterator_zh",
360 : : "com.sun.star.i18n.BreakIterator_zh",
361 : : &BreakIterator_zh_CreateInstance },
362 : : { "com.sun.star.i18n.BreakIterator_zh_TW",
363 : : "com.sun.star.i18n.BreakIterator_zh_TW",
364 : : &BreakIterator_zh_TW_CreateInstance },
365 : : { "com.sun.star.i18n.BreakIterator_ko",
366 : : "com.sun.star.i18n.BreakIterator_ko",
367 : : &BreakIterator_ko_CreateInstance },
368 : : { "com.sun.star.i18n.BreakIterator_th",
369 : : "com.sun.star.i18n.BreakIterator_th",
370 : : &BreakIterator_th_CreateInstance },
371 : : { "com.sun.star.i18n.Collator",
372 : : "com.sun.star.i18n.Collator",
373 : : &CollatorImpl_CreateInstance },
374 : : { "com.sun.star.i18n.ChapterCollator",
375 : : "com.sun.star.i18n.ChapterCollator",
376 : : &ChapterCollator_CreateInstance },
377 : : { "com.sun.star.i18n.Collator_Unicode",
378 : : "com.sun.star.i18n.Collator_Unicode",
379 : : &Collator_Unicode_CreateInstance },
380 : : { "com.sun.star.i18n.ScriptTypeDetector",
381 : : "com.sun.star.i18n.ScriptTypeDetector",
382 : : &UnoScriptTypeDetector_CreateInstance },
383 : : { "com.sun.star.i18n.CharacterClassification",
384 : : "com.sun.star.i18n.CharacterClassification",
385 : : &CharacterClassificationImpl_CreateInstance },
386 : : { "com.sun.star.i18n.CharacterClassification_Unicode",
387 : : "com.sun.star.i18n.CharacterClassification_Unicode",
388 : : &cclass_Unicode_CreateInstance },
389 : : { "com.sun.star.i18n.InputSequenceChecker",
390 : : "com.sun.star.i18n.InputSequenceChecker",
391 : : &InputSequenceCheckerImpl_CreateInstance },
392 : : { "com.sun.star.i18n.InputSequenceChecker_th",
393 : : "com.sun.star.i18n.InputSequenceChecker_th",
394 : : &InputSequenceChecker_th_CreateInstance },
395 : : { "com.sun.star.i18n.InputSequenceChecker_hi",
396 : : "com.sun.star.i18n.InputSequenceChecker_hi",
397 : : &InputSequenceChecker_hi_CreateInstance },
398 : : { "com.sun.star.i18n.TextConversion",
399 : : "com.sun.star.i18n.TextConversion",
400 : : &TextConversionImpl_CreateInstance },
401 : : { "com.sun.star.i18n.TextConversion_ko",
402 : : "com.sun.star.i18n.TextConversion_ko",
403 : : &TextConversion_ko_CreateInstance },
404 : : { "com.sun.star.i18n.TextConversion_zh",
405 : : "com.sun.star.i18n.TextConversion_zh",
406 : : &TextConversion_zh_CreateInstance },
407 : : { TRLT_SERVICELNAME,
408 : : TRLT_IMPLNAME ,
409 : : &TransliterationImpl_CreateInstance },
410 : : { TRLT_SERVICELNAME_L10N,
411 : : TRLT_IMPLNAME_PREFIX "UPPERCASE_LOWERCASE",
412 : : &Transliteration_u2l_CreateInstance },
413 : : { TRLT_SERVICELNAME_L10N,
414 : : TRLT_IMPLNAME_PREFIX "LOWERCASE_UPPERCASE",
415 : : &Transliteration_l2u_CreateInstance },
416 : : { TRLT_SERVICELNAME_L10N,
417 : : TRLT_IMPLNAME_PREFIX "SENTENCE_CASE",
418 : : &Transliteration_sentencecase_CreateInstance },
419 : : { TRLT_SERVICELNAME_L10N,
420 : : TRLT_IMPLNAME_PREFIX "TITLE_CASE",
421 : : &Transliteration_titlecase_CreateInstance },
422 : : { TRLT_SERVICELNAME_L10N,
423 : : TRLT_IMPLNAME_PREFIX "TOGGLE_CASE",
424 : : &Transliteration_togglecase_CreateInstance },
425 : : { TRLT_SERVICELNAME_L10N,
426 : : TRLT_IMPLNAME_PREFIX "IGNORE_CASE",
427 : : &Transliteration_caseignore_CreateInstance },
428 : : { TRLT_SERVICELNAME_L10N,
429 : : TRLT_IMPLNAME_PREFIX "HIRAGANA_KATAKANA",
430 : : &hiraganaToKatakana_CreateInstance },
431 : : { TRLT_SERVICELNAME_L10N,
432 : : TRLT_IMPLNAME_PREFIX "KATAKANA_HIRAGANA",
433 : : &katakanaToHiragana_CreateInstance },
434 : : { TRLT_SERVICELNAME_L10N,
435 : : TRLT_IMPLNAME_PREFIX "IGNORE_KANA",
436 : : &ignoreKana_CreateInstance },
437 : : { TRLT_SERVICELNAME_L10N,
438 : : TRLT_IMPLNAME_PREFIX "FULLWIDTH_HALFWIDTH",
439 : : &fullwidthToHalfwidth_CreateInstance },
440 : : { TRLT_SERVICELNAME_L10N,
441 : : TRLT_IMPLNAME_PREFIX "HALFWIDTH_FULLWIDTH",
442 : : &halfwidthToFullwidth_CreateInstance },
443 : : { TRLT_SERVICELNAME_L10N,
444 : : TRLT_IMPLNAME_PREFIX "IGNORE_WIDTH",
445 : : &ignoreWidth_CreateInstance },
446 : : IMPL_TRANSLITERATION_ITEM (smallToLarge_ja_JP),
447 : : IMPL_TRANSLITERATION_ITEM (largeToSmall_ja_JP),
448 : : IMPL_TRANSLITERATION_ITEM (ignoreTraditionalKanji_ja_JP),
449 : : IMPL_TRANSLITERATION_ITEM (ignoreTraditionalKana_ja_JP),
450 : : IMPL_TRANSLITERATION_ITEM (ignoreKana),
451 : : IMPL_TRANSLITERATION_ITEM (ignoreMinusSign_ja_JP),
452 : : IMPL_TRANSLITERATION_ITEM (ignoreIterationMark_ja_JP),
453 : : IMPL_TRANSLITERATION_ITEM (ignoreSeparator_ja_JP),
454 : : IMPL_TRANSLITERATION_ITEM (ignoreZiZu_ja_JP),
455 : : IMPL_TRANSLITERATION_ITEM (ignoreBaFa_ja_JP),
456 : : IMPL_TRANSLITERATION_ITEM (ignoreTiJi_ja_JP),
457 : : IMPL_TRANSLITERATION_ITEM (ignoreHyuByu_ja_JP),
458 : : IMPL_TRANSLITERATION_ITEM (ignoreSeZe_ja_JP),
459 : : IMPL_TRANSLITERATION_ITEM (ignoreIandEfollowedByYa_ja_JP),
460 : : IMPL_TRANSLITERATION_ITEM (ignoreKiKuFollowedBySa_ja_JP),
461 : : IMPL_TRANSLITERATION_ITEM (ignoreSize_ja_JP),
462 : : IMPL_TRANSLITERATION_ITEM (ignoreProlongedSoundMark_ja_JP),
463 : : IMPL_TRANSLITERATION_ITEM (ignoreMiddleDot_ja_JP),
464 : : IMPL_TRANSLITERATION_ITEM (ignoreSpace_ja_JP),
465 : : IMPL_TRANSLITERATION_ITEM (TextToPinyin_zh_CN),
466 : : IMPL_TRANSLITERATION_ITEM (TextToChuyin_zh_TW),
467 : :
468 : : IMPL_TRANSLITERATION_ITEM (NumToCharUpper_zh_CN),
469 : : IMPL_TRANSLITERATION_ITEM (NumToCharLower_zh_CN),
470 : : IMPL_TRANSLITERATION_ITEM (NumToCharUpper_zh_TW),
471 : : IMPL_TRANSLITERATION_ITEM (NumToCharLower_zh_TW),
472 : : IMPL_TRANSLITERATION_ITEM (NumToCharHalfwidth),
473 : : IMPL_TRANSLITERATION_ITEM (NumToCharFullwidth),
474 : : IMPL_TRANSLITERATION_ITEM (NumToCharKanjiShort_ja_JP),
475 : : IMPL_TRANSLITERATION_ITEM (NumToCharKanjiTraditional_ja_JP),
476 : : IMPL_TRANSLITERATION_ITEM (NumToCharLower_ko),
477 : : IMPL_TRANSLITERATION_ITEM (NumToCharUpper_ko),
478 : : IMPL_TRANSLITERATION_ITEM (NumToCharHangul_ko),
479 : : IMPL_TRANSLITERATION_ITEM (NumToCharIndic_ar),
480 : : IMPL_TRANSLITERATION_ITEM (NumToCharEastIndic_ar),
481 : : IMPL_TRANSLITERATION_ITEM (NumToCharIndic_hi),
482 : : IMPL_TRANSLITERATION_ITEM (NumToChar_th),
483 : :
484 : : IMPL_TRANSLITERATION_ITEM (CharToNumUpper_zh_CN),
485 : : IMPL_TRANSLITERATION_ITEM (CharToNumLower_zh_CN),
486 : : IMPL_TRANSLITERATION_ITEM (CharToNumUpper_zh_TW),
487 : : IMPL_TRANSLITERATION_ITEM (CharToNumLower_zh_TW),
488 : : IMPL_TRANSLITERATION_ITEM (CharToNumFullwidth),
489 : : IMPL_TRANSLITERATION_ITEM (CharToNumKanjiShort_ja_JP),
490 : : IMPL_TRANSLITERATION_ITEM (CharToNumKanjiTraditional_ja_JP),
491 : : IMPL_TRANSLITERATION_ITEM (CharToNumLower_ko),
492 : : IMPL_TRANSLITERATION_ITEM (CharToNumUpper_ko),
493 : : IMPL_TRANSLITERATION_ITEM (CharToNumHangul_ko),
494 : : IMPL_TRANSLITERATION_ITEM (CharToNumIndic_ar),
495 : : IMPL_TRANSLITERATION_ITEM (CharToNumEastIndic_ar),
496 : : IMPL_TRANSLITERATION_ITEM (CharToNumIndic_hi),
497 : : IMPL_TRANSLITERATION_ITEM (CharToNum_th),
498 : :
499 : : IMPL_TRANSLITERATION_ITEM (NumToTextUpper_zh_CN),
500 : : IMPL_TRANSLITERATION_ITEM (NumToTextLower_zh_CN),
501 : : IMPL_TRANSLITERATION_ITEM (NumToTextUpper_zh_TW),
502 : : IMPL_TRANSLITERATION_ITEM (NumToTextLower_zh_TW),
503 : : IMPL_TRANSLITERATION_ITEM (NumToTextFullwidth_zh_CN),
504 : : IMPL_TRANSLITERATION_ITEM (NumToTextFullwidth_zh_TW),
505 : : IMPL_TRANSLITERATION_ITEM (NumToTextFullwidth_ja_JP),
506 : : IMPL_TRANSLITERATION_ITEM (NumToTextFullwidth_ko),
507 : : IMPL_TRANSLITERATION_ITEM (NumToTextKanjiLongModern_ja_JP),
508 : : IMPL_TRANSLITERATION_ITEM (NumToTextKanjiLongTraditional_ja_JP),
509 : : IMPL_TRANSLITERATION_ITEM (NumToTextKanjiShortModern_ja_JP),
510 : : IMPL_TRANSLITERATION_ITEM (NumToTextKanjiShortTraditional_ja_JP),
511 : : IMPL_TRANSLITERATION_ITEM (NumToTextInformalHangul_ko),
512 : : IMPL_TRANSLITERATION_ITEM (NumToTextInformalLower_ko),
513 : : IMPL_TRANSLITERATION_ITEM (NumToTextInformalUpper_ko),
514 : : IMPL_TRANSLITERATION_ITEM (NumToTextFormalHangul_ko),
515 : : IMPL_TRANSLITERATION_ITEM (NumToTextFormalLower_ko),
516 : : IMPL_TRANSLITERATION_ITEM (NumToTextFormalUpper_ko),
517 : :
518 : : IMPL_TRANSLITERATION_ITEM (TextToNumUpper_zh_CN),
519 : : IMPL_TRANSLITERATION_ITEM (TextToNumLower_zh_CN),
520 : : IMPL_TRANSLITERATION_ITEM (TextToNumUpper_zh_TW),
521 : : IMPL_TRANSLITERATION_ITEM (TextToNumLower_zh_TW),
522 : : IMPL_TRANSLITERATION_ITEM (TextToNumKanjiLongModern_ja_JP),
523 : : IMPL_TRANSLITERATION_ITEM (TextToNumKanjiLongTraditional_ja_JP),
524 : : IMPL_TRANSLITERATION_ITEM (TextToNumInformalHangul_ko),
525 : : IMPL_TRANSLITERATION_ITEM (TextToNumInformalLower_ko),
526 : : IMPL_TRANSLITERATION_ITEM (TextToNumInformalUpper_ko),
527 : : IMPL_TRANSLITERATION_ITEM (TextToNumFormalHangul_ko),
528 : : IMPL_TRANSLITERATION_ITEM (TextToNumFormalLower_ko),
529 : : IMPL_TRANSLITERATION_ITEM (TextToNumFormalUpper_ko),
530 : :
531 : : IMPL_TRANSLITERATION_ITEM (NumToTextDate_zh),
532 : : IMPL_TRANSLITERATION_ITEM (NumToTextAIUFullWidth_ja_JP),
533 : : IMPL_TRANSLITERATION_ITEM (NumToTextAIUHalfWidth_ja_JP),
534 : : IMPL_TRANSLITERATION_ITEM (NumToTextIROHAFullWidth_ja_JP),
535 : : IMPL_TRANSLITERATION_ITEM (NumToTextIROHAHalfWidth_ja_JP),
536 : : IMPL_TRANSLITERATION_ITEM (NumToTextCircledNumber),
537 : : IMPL_TRANSLITERATION_ITEM (NumToTextHangulJamo_ko),
538 : : IMPL_TRANSLITERATION_ITEM (NumToTextHangulSyllable_ko),
539 : : IMPL_TRANSLITERATION_ITEM (NumToTextHangulCircledJamo_ko),
540 : : IMPL_TRANSLITERATION_ITEM (NumToTextHangulCircledSyllable_ko),
541 : : IMPL_TRANSLITERATION_ITEM (NumToTextTianGan_zh),
542 : : IMPL_TRANSLITERATION_ITEM (NumToTextDiZi_zh),
543 : :
544 : : { "com.sun.star.i18n.OrdinalSuffix",
545 : : "com.sun.star.i18n.OrdinalSuffix",
546 : : & OrdinalSuffix_CreateInstance },
547 : :
548 : : { TRLT_SERVICELNAME_L10N,
549 : : TRLT_IMPLNAME_PREFIX "FULLWIDTHKATAKANA_HALFWIDTHKATAKANA",
550 : : &fullwidthKatakanaToHalfwidthKatakana_CreateInstance },
551 : : { TRLT_SERVICELNAME_L10N,
552 : : TRLT_IMPLNAME_PREFIX "HALFWIDTHKATAKANA_FULLWIDTHKATAKANA",
553 : : &halfwidthKatakanaToFullwidthKatakana_CreateInstance },
554 : : { TRLT_SERVICELNAME_L10N,
555 : : TRLT_IMPLNAME_PREFIX "FULLWIDTH_HALFWIDTH_LIKE_ASC",
556 : : &fullwidthToHalfwidthLikeASC_CreateInstance },
557 : : { TRLT_SERVICELNAME_L10N,
558 : : TRLT_IMPLNAME_PREFIX "HALFWIDTH_FULLWIDTH_LIKE_JIS",
559 : : &halfwidthToFullwidthLikeJIS_CreateInstance },
560 : : // add here new services !!
561 : : { 0, 0, 0 }
562 : : };
563 : :
564 : :
565 : : extern "C"
566 : : {
567 : :
568 : 1561 : SAL_DLLPUBLIC_EXPORT void* SAL_CALL i18npool_component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, SAL_UNUSED_PARAMETER void* /*_pRegistryKey*/ )
569 : : {
570 : 1561 : void* pRet = NULL;
571 : :
572 : : ::com::sun::star::lang::XMultiServiceFactory* pServiceManager =
573 : : reinterpret_cast< ::com::sun::star::lang::XMultiServiceFactory* >
574 : 1561 : ( _pServiceManager );
575 : : ::com::sun::star::uno::Reference<
576 : 1561 : ::com::sun::star::lang::XSingleServiceFactory > xFactory;
577 : :
578 [ + - ]: 41520 : for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr )
579 : : {
580 [ + + ]: 41520 : if( 0 == rtl_str_compare( sImplementationName, pArr->pImplementationNm ) )
581 : : {
582 [ + - ]: 1561 : ::com::sun::star::uno::Sequence< ::rtl::OUString > aServiceNames(1);
583 : : aServiceNames.getArray()[0] =
584 [ + - ]: 1561 : ::rtl::OUString::createFromAscii( pArr->pServiceNm );
585 : : xFactory = ::cppu::createSingleFactory(
586 : : pServiceManager,
587 : : ::rtl::OUString::createFromAscii( pArr->pImplementationNm ),
588 [ + - ][ + - ]: 1561 : *pArr->pFn, aServiceNames );
[ + - ]
589 [ + - ]: 1561 : break;
590 : : }
591 : : }
592 : :
593 [ + - ]: 1561 : if ( xFactory.is() )
594 : : {
595 [ + - ]: 1561 : xFactory->acquire();
596 [ + - ]: 1561 : pRet = xFactory.get();
597 : : }
598 : :
599 : 1561 : return pRet;
600 : : }
601 : :
602 : : } // "C"
603 : :
604 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|