/src/libreoffice/i18npool/source/registerservices/registerservices.cxx
Line | Count | Source |
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 <config_locales.h> |
21 | | |
22 | | #include <com/sun/star/lang/XSingleServiceFactory.hpp> |
23 | | |
24 | | #include <comphelper/processfactory.hxx> |
25 | | #include <cppuhelper/factory.hxx> |
26 | | #include <cppuhelper/weak.hxx> |
27 | | |
28 | | #include <servicename.hxx> |
29 | | |
30 | | #include <transliteration_body.hxx> |
31 | | #include <transliteration_OneToOne.hxx> |
32 | | #include <textToPronounce_zh.hxx> |
33 | | #include <numtotext_cjk.hxx> |
34 | | #include <numtochar.hxx> |
35 | | #include <texttonum.hxx> |
36 | | #include <chartonum.hxx> |
37 | | |
38 | | #include <calendarImpl.hxx> |
39 | | #include <calendar_gregorian.hxx> |
40 | | #include <calendar_hijri.hxx> |
41 | | #include <calendar_jewish.hxx> |
42 | | |
43 | | #include <breakiterator_cjk.hxx> |
44 | | |
45 | | #include <indexentrysupplier.hxx> |
46 | | #include <indexentrysupplier_asian.hxx> |
47 | | #include <indexentrysupplier_ja_phonetic.hxx> |
48 | | #include <indexentrysupplier_default.hxx> |
49 | | |
50 | | #include <chaptercollator.hxx> |
51 | | #include <collator_unicode.hxx> |
52 | | |
53 | | #include <inputsequencechecker_th.hxx> |
54 | | #include <inputsequencechecker_hi.hxx> |
55 | | |
56 | | #include <textconversion.hxx> |
57 | | |
58 | | using namespace ::com::sun::star; |
59 | | using namespace i18npool; |
60 | | |
61 | | #define IMPL_CREATEINSTANCE( ImplName ) \ |
62 | | static uno::Reference< uno::XInterface > \ |
63 | | ImplName##_CreateInstance( \ |
64 | | SAL_UNUSED_PARAMETER const uno::Reference< \ |
65 | 0 | lang::XMultiServiceFactory >& ) \ |
66 | 0 | { \ |
67 | 0 | return uno::Reference < \ |
68 | 0 | uno::XInterface >( static_cast<cppu::OWeakObject*>( \ |
69 | 0 | new ImplName) ); \ |
70 | 0 | } Unexecuted instantiation: registerservices.cxx:Transliteration_u2l_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:Transliteration_l2u_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:Transliteration_sentencecase_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:Transliteration_titlecase_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:Transliteration_togglecase_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:NumToCharIndic_ar_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:ignoreDiacritics_CTL_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:ignoreKashida_CTL_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) Unexecuted instantiation: registerservices.cxx:NumToTextCircledNumber_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) |
71 | | |
72 | | #define IMPL_TRANSLITERATION_ITEM( implName ) \ |
73 | | { TRLT_SERVICELNAME_L10N, \ |
74 | | TRLT_IMPLNAME_PREFIX #implName, \ |
75 | | &implName##_CreateInstance } |
76 | | |
77 | | #define IMPL_UNO_CONSTRUCTOR( ImplName ) \ |
78 | | extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * \ |
79 | | i18npool_##ImplName##_get_implementation( \ |
80 | | css::uno::XComponentContext *, \ |
81 | 27.9k | css::uno::Sequence<css::uno::Any> const &) \ |
82 | 27.9k | { \ |
83 | 27.9k | return cppu::acquire(new ImplName()); \ |
84 | 27.9k | } i18npool_Calendar_buddhist_get_implementation Line | Count | Source | 81 | 160 | css::uno::Sequence<css::uno::Any> const &) \ | 82 | 160 | { \ | 83 | 160 | return cppu::acquire(new ImplName()); \ | 84 | 160 | } |
i18npool_Calendar_dangi_get_implementation Line | Count | Source | 81 | 161 | css::uno::Sequence<css::uno::Any> const &) \ | 82 | 161 | { \ | 83 | 161 | return cppu::acquire(new ImplName()); \ | 84 | 161 | } |
Unexecuted instantiation: i18npool_Calendar_gengou_get_implementation i18npool_Calendar_gregorian_get_implementation Line | Count | Source | 81 | 25.7k | css::uno::Sequence<css::uno::Any> const &) \ | 82 | 25.7k | { \ | 83 | 25.7k | return cppu::acquire(new ImplName()); \ | 84 | 25.7k | } |
Unexecuted instantiation: i18npool_Calendar_hanja_get_implementation Unexecuted instantiation: i18npool_Calendar_hanja_yoil_get_implementation i18npool_Calendar_hijri_get_implementation Line | Count | Source | 81 | 160 | css::uno::Sequence<css::uno::Any> const &) \ | 82 | 160 | { \ | 83 | 160 | return cppu::acquire(new ImplName()); \ | 84 | 160 | } |
i18npool_Calendar_jewish_get_implementation Line | Count | Source | 81 | 1.64k | css::uno::Sequence<css::uno::Any> const &) \ | 82 | 1.64k | { \ | 83 | 1.64k | return cppu::acquire(new ImplName()); \ | 84 | 1.64k | } |
Unexecuted instantiation: i18npool_Calendar_ROC_get_implementation Unexecuted instantiation: i18npool_CharToNumEastIndic_ar_get_implementation Unexecuted instantiation: i18npool_CharToNumIndic_ar_get_implementation i18npool_Collator_Unicode_get_implementation Line | Count | Source | 81 | 3 | css::uno::Sequence<css::uno::Any> const &) \ | 82 | 3 | { \ | 83 | 3 | return cppu::acquire(new ImplName()); \ | 84 | 3 | } |
Unexecuted instantiation: i18npool_NumToCharEastIndic_ar_get_implementation |
85 | | |
86 | | #define IMPL_UNO_CONSTRUCTOR_CTX( ImplName ) \ |
87 | | extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * \ |
88 | | i18npool_##ImplName##_get_implementation( \ |
89 | | css::uno::XComponentContext * context, \ |
90 | 70.6k | css::uno::Sequence<css::uno::Any> const &) \ |
91 | 70.6k | { \ |
92 | 70.6k | return cppu::acquire(new ImplName(context)); \ |
93 | 70.6k | } i18npool_CalendarImpl_get_implementation Line | Count | Source | 90 | 70.6k | css::uno::Sequence<css::uno::Any> const &) \ | 91 | 70.6k | { \ | 92 | 70.6k | return cppu::acquire(new ImplName(context)); \ | 93 | 70.6k | } |
Unexecuted instantiation: i18npool_ChapterCollator_get_implementation Unexecuted instantiation: i18npool_IndexEntrySupplier_get_implementation Unexecuted instantiation: i18npool_IndexEntrySupplier_asian_get_implementation Unexecuted instantiation: i18npool_IndexEntrySupplier_Unicode_get_implementation |
94 | | |
95 | | |
96 | | // At least for iOS it doesn't hurt if we have lots of functions here |
97 | | // generated by these lovely macros that get compiled, but then no |
98 | | // references to them thanks to the WITH_LOCALE ifdefs for the |
99 | | // aInstances table below. The -dead_strip linker option will take |
100 | | // care of not linking these functions in. Presumably the same holds |
101 | | // for Android, too, as we use -ffunction-sections and |
102 | | // -Wl,--gc_sections. It's mainly for iOS and Android that the |
103 | | // --with-locales option is intended anyway. |
104 | | |
105 | | IMPL_CREATEINSTANCE( ignoreDiacritics_CTL ) |
106 | | IMPL_CREATEINSTANCE( ignoreKashida_CTL ) |
107 | | IMPL_CREATEINSTANCE( NumToCharIndic_ar ) |
108 | | IMPL_CREATEINSTANCE( NumToTextCircledNumber ) |
109 | | IMPL_CREATEINSTANCE( Transliteration_l2u ) |
110 | | IMPL_CREATEINSTANCE( Transliteration_sentencecase ) |
111 | | IMPL_CREATEINSTANCE( Transliteration_titlecase ) |
112 | | IMPL_CREATEINSTANCE( Transliteration_togglecase ) |
113 | | IMPL_CREATEINSTANCE( Transliteration_u2l ) |
114 | | IMPL_UNO_CONSTRUCTOR( Calendar_buddhist ) |
115 | | IMPL_UNO_CONSTRUCTOR( Calendar_dangi ) |
116 | | IMPL_UNO_CONSTRUCTOR( Calendar_gengou ) |
117 | | IMPL_UNO_CONSTRUCTOR( Calendar_gregorian ) |
118 | | IMPL_UNO_CONSTRUCTOR( Calendar_hanja ) |
119 | | IMPL_UNO_CONSTRUCTOR( Calendar_hanja_yoil ) |
120 | | IMPL_UNO_CONSTRUCTOR( Calendar_hijri ) |
121 | | IMPL_UNO_CONSTRUCTOR( Calendar_jewish ) |
122 | | IMPL_UNO_CONSTRUCTOR( Calendar_ROC ) |
123 | | IMPL_UNO_CONSTRUCTOR( CharToNumEastIndic_ar ) |
124 | | IMPL_UNO_CONSTRUCTOR( CharToNumIndic_ar ) |
125 | | IMPL_UNO_CONSTRUCTOR( Collator_Unicode ) |
126 | | IMPL_UNO_CONSTRUCTOR_CTX( CalendarImpl ) |
127 | | IMPL_UNO_CONSTRUCTOR_CTX( ChapterCollator ) |
128 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier ) |
129 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier_asian ) |
130 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier_Unicode ) |
131 | | IMPL_UNO_CONSTRUCTOR( NumToCharEastIndic_ar ) |
132 | | |
133 | | #if WITH_LOCALE_ALL || WITH_LOCALE_hi |
134 | | IMPL_CREATEINSTANCE( NumToCharIndic_hi ) |
135 | | IMPL_UNO_CONSTRUCTOR( CharToNumIndic_hi ) |
136 | | IMPL_UNO_CONSTRUCTOR( InputSequenceChecker_hi ) |
137 | | #endif |
138 | | |
139 | | #if WITH_LOCALE_ALL || WITH_LOCALE_ja |
140 | | IMPL_CREATEINSTANCE( fullwidthToHalfwidth ) |
141 | | IMPL_CREATEINSTANCE( halfwidthToFullwidth ) |
142 | | IMPL_CREATEINSTANCE( hiraganaToKatakana ) |
143 | | IMPL_CREATEINSTANCE( ignoreBaFa_ja_JP ) |
144 | | IMPL_CREATEINSTANCE( ignoreHyuByu_ja_JP ) |
145 | | IMPL_CREATEINSTANCE( ignoreIandEfollowedByYa_ja_JP ) |
146 | | IMPL_CREATEINSTANCE( ignoreIterationMark_ja_JP ) |
147 | | IMPL_CREATEINSTANCE( ignoreKiKuFollowedBySa_ja_JP ) |
148 | | IMPL_CREATEINSTANCE( ignoreMiddleDot_ja_JP ) |
149 | | IMPL_CREATEINSTANCE( ignoreMinusSign_ja_JP ) |
150 | | IMPL_CREATEINSTANCE( ignoreProlongedSoundMark_ja_JP ) |
151 | | IMPL_CREATEINSTANCE( ignoreSeparator_ja_JP ) |
152 | | IMPL_CREATEINSTANCE( ignoreSeZe_ja_JP ) |
153 | | IMPL_CREATEINSTANCE( ignoreSize_ja_JP ) |
154 | | IMPL_CREATEINSTANCE( ignoreSpace_ja_JP ) |
155 | | IMPL_CREATEINSTANCE( ignoreTiJi_ja_JP ) |
156 | | IMPL_CREATEINSTANCE( ignoreTraditionalKana_ja_JP ) |
157 | | IMPL_CREATEINSTANCE( ignoreTraditionalKanji_ja_JP ) |
158 | | IMPL_CREATEINSTANCE( ignoreZiZu_ja_JP ) |
159 | | IMPL_CREATEINSTANCE( katakanaToHiragana ) |
160 | | IMPL_CREATEINSTANCE( largeToSmall_ja_JP ) |
161 | | IMPL_CREATEINSTANCE( NumToCharFullwidth ) |
162 | | IMPL_CREATEINSTANCE( NumToCharHalfwidth ) |
163 | | IMPL_CREATEINSTANCE( NumToCharKanjiShort_ja_JP ) |
164 | | IMPL_CREATEINSTANCE( NumToCharKanjiTraditional_ja_JP ) |
165 | | IMPL_CREATEINSTANCE( NumToTextFullwidth_ja_JP ) |
166 | | IMPL_CREATEINSTANCE( NumToTextKanjiLongModern_ja_JP ) |
167 | | IMPL_CREATEINSTANCE( NumToTextKanjiLongTraditional_ja_JP ) |
168 | | IMPL_CREATEINSTANCE( NumToTextKanjiShortModern_ja_JP ) |
169 | | IMPL_CREATEINSTANCE( NumToTextKanjiShortTraditional_ja_JP ) |
170 | | IMPL_CREATEINSTANCE( smallToLarge_ja_JP ) |
171 | | IMPL_CREATEINSTANCE( TextToNumKanjiLongModern_ja_JP ) |
172 | | IMPL_CREATEINSTANCE( TextToNumKanjiLongTraditional_ja_JP ) |
173 | | IMPL_UNO_CONSTRUCTOR( BreakIterator_ja ) |
174 | | IMPL_UNO_CONSTRUCTOR( CharToNumFullwidth ) |
175 | | IMPL_UNO_CONSTRUCTOR( CharToNumKanjiShort_ja_JP ) |
176 | | IMPL_UNO_CONSTRUCTOR( CharToNumKanjiTraditional_ja_JP ) |
177 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant ) |
178 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable ) |
179 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant ) |
180 | | IMPL_UNO_CONSTRUCTOR_CTX( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable ) |
181 | | IMPL_UNO_CONSTRUCTOR( FULLWIDTH_HALFWIDTH_LIKE_ASC ) |
182 | | IMPL_UNO_CONSTRUCTOR( FULLWIDTHKATAKANA_HALFWIDTHKATAKANA ) |
183 | | IMPL_UNO_CONSTRUCTOR( HALFWIDTH_FULLWIDTH_LIKE_JIS ) |
184 | | IMPL_UNO_CONSTRUCTOR( HALFWIDTHKATAKANA_FULLWIDTHKATAKANA ) |
185 | | IMPL_UNO_CONSTRUCTOR( NumToTextAIUFullWidth_ja_JP ) |
186 | | IMPL_UNO_CONSTRUCTOR( NumToTextAIUHalfWidth_ja_JP ) |
187 | | IMPL_UNO_CONSTRUCTOR( NumToTextIROHAFullWidth_ja_JP ) |
188 | | IMPL_UNO_CONSTRUCTOR( NumToTextIROHAHalfWidth_ja_JP ) |
189 | | #endif |
190 | | |
191 | | #if WITH_LOCALE_ALL || WITH_LOCALE_ko |
192 | | IMPL_CREATEINSTANCE( NumToCharHangul_ko ) |
193 | | IMPL_CREATEINSTANCE( NumToCharLower_ko ) |
194 | | IMPL_CREATEINSTANCE( NumToCharUpper_ko ) |
195 | | IMPL_CREATEINSTANCE( NumToTextFullwidth_ko ) |
196 | | IMPL_CREATEINSTANCE( TextToNumFormalHangul_ko ) |
197 | | IMPL_CREATEINSTANCE( TextToNumFormalLower_ko ) |
198 | | IMPL_CREATEINSTANCE( TextToNumFormalUpper_ko ) |
199 | | IMPL_CREATEINSTANCE( TextToNumInformalHangul_ko ) |
200 | | IMPL_CREATEINSTANCE( TextToNumInformalLower_ko ) |
201 | | IMPL_CREATEINSTANCE( TextToNumInformalUpper_ko ) |
202 | | IMPL_UNO_CONSTRUCTOR( BreakIterator_ko ) |
203 | | IMPL_UNO_CONSTRUCTOR( CharToNumHangul_ko ) |
204 | | IMPL_UNO_CONSTRUCTOR( CharToNumLower_ko ) |
205 | | IMPL_UNO_CONSTRUCTOR( CharToNumUpper_ko ) |
206 | | IMPL_UNO_CONSTRUCTOR_CTX( TextConversion_ko ) |
207 | | IMPL_UNO_CONSTRUCTOR( NumToTextFormalHangul_ko ) |
208 | | IMPL_UNO_CONSTRUCTOR( NumToTextFormalLower_ko ) |
209 | | IMPL_UNO_CONSTRUCTOR( NumToTextFormalUpper_ko ) |
210 | | IMPL_UNO_CONSTRUCTOR( NumToTextHangulCircledJamo_ko ) |
211 | | IMPL_UNO_CONSTRUCTOR( NumToTextHangulCircledSyllable_ko ) |
212 | | IMPL_UNO_CONSTRUCTOR( NumToTextHangulJamo_ko ) |
213 | | IMPL_UNO_CONSTRUCTOR( NumToTextHangulSyllable_ko ) |
214 | | IMPL_UNO_CONSTRUCTOR( NumToTextInformalHangul_ko ) |
215 | | IMPL_UNO_CONSTRUCTOR( NumToTextInformalLower_ko ) |
216 | | IMPL_UNO_CONSTRUCTOR( NumToTextInformalUpper_ko ) |
217 | | #endif |
218 | | |
219 | | #if WITH_LOCALE_ALL || WITH_LOCALE_th |
220 | | IMPL_CREATEINSTANCE( NumToChar_th ) |
221 | | IMPL_UNO_CONSTRUCTOR( CharToNum_th ) |
222 | | IMPL_UNO_CONSTRUCTOR( InputSequenceChecker_th ) |
223 | | #endif |
224 | | |
225 | | #if WITH_LOCALE_ALL || WITH_LOCALE_zh |
226 | | IMPL_CREATEINSTANCE( NumToCharLower_zh_CN ) |
227 | | IMPL_CREATEINSTANCE( NumToCharLower_zh_TW ) |
228 | | IMPL_CREATEINSTANCE( NumToCharUpper_zh_CN ) |
229 | | IMPL_CREATEINSTANCE( NumToCharUpper_zh_TW ) |
230 | | IMPL_CREATEINSTANCE( NumToTextDate_zh ) |
231 | | IMPL_CREATEINSTANCE( NumToTextDiZi_zh ) |
232 | | IMPL_CREATEINSTANCE( NumToTextTianGan_zh ) |
233 | | IMPL_CREATEINSTANCE( TextToChuyin_zh_TW ) |
234 | | IMPL_CREATEINSTANCE( TextToNumLower_zh_CN ) |
235 | | IMPL_CREATEINSTANCE( TextToNumLower_zh_TW ) |
236 | | IMPL_CREATEINSTANCE( TextToNumUpper_zh_CN ) |
237 | | IMPL_CREATEINSTANCE( TextToNumUpper_zh_TW ) |
238 | | IMPL_CREATEINSTANCE( TextToPinyin_zh_CN ) |
239 | | IMPL_UNO_CONSTRUCTOR( BreakIterator_zh ) |
240 | | IMPL_UNO_CONSTRUCTOR( BreakIterator_zh_TW ) |
241 | | IMPL_UNO_CONSTRUCTOR( CharToNumLower_zh_CN ) |
242 | | IMPL_UNO_CONSTRUCTOR( CharToNumLower_zh_TW ) |
243 | | IMPL_UNO_CONSTRUCTOR( CharToNumUpper_zh_CN ) |
244 | | IMPL_UNO_CONSTRUCTOR( CharToNumUpper_zh_TW ) |
245 | | IMPL_UNO_CONSTRUCTOR_CTX( TextConversion_zh ) |
246 | | IMPL_UNO_CONSTRUCTOR( NumToTextFullwidth_zh_CN ) |
247 | | IMPL_UNO_CONSTRUCTOR( NumToTextFullwidth_zh_TW ) |
248 | | IMPL_UNO_CONSTRUCTOR( NumToTextLower_zh_CN ) |
249 | | IMPL_UNO_CONSTRUCTOR( NumToTextLower_zh_TW ) |
250 | | IMPL_UNO_CONSTRUCTOR( NumToTextUpper_zh_CN ) |
251 | | IMPL_UNO_CONSTRUCTOR( NumToTextUpper_zh_TW ) |
252 | | #endif |
253 | | |
254 | | namespace { |
255 | | |
256 | | typedef uno::Reference< uno::XInterface > (*FN_CreateInstance)( |
257 | | const uno::Reference< lang::XMultiServiceFactory >& ); |
258 | | |
259 | | struct InstancesArray { |
260 | | const char* pServiceNm; |
261 | | const char* pImplementationNm; |
262 | | FN_CreateInstance pFn; |
263 | | }; |
264 | | |
265 | | } |
266 | | |
267 | | const InstancesArray aInstances[] = { |
268 | | { TRLT_SERVICELNAME_L10N, |
269 | | TRLT_IMPLNAME_PREFIX "UPPERCASE_LOWERCASE", |
270 | | &Transliteration_u2l_CreateInstance }, |
271 | | { TRLT_SERVICELNAME_L10N, |
272 | | TRLT_IMPLNAME_PREFIX "LOWERCASE_UPPERCASE", |
273 | | &Transliteration_l2u_CreateInstance }, |
274 | | { TRLT_SERVICELNAME_L10N, |
275 | | TRLT_IMPLNAME_PREFIX "SENTENCE_CASE", |
276 | | &Transliteration_sentencecase_CreateInstance }, |
277 | | { TRLT_SERVICELNAME_L10N, |
278 | | TRLT_IMPLNAME_PREFIX "TITLE_CASE", |
279 | | &Transliteration_titlecase_CreateInstance }, |
280 | | { TRLT_SERVICELNAME_L10N, |
281 | | TRLT_IMPLNAME_PREFIX "TOGGLE_CASE", |
282 | | &Transliteration_togglecase_CreateInstance }, |
283 | | |
284 | | IMPL_TRANSLITERATION_ITEM( NumToCharIndic_ar ), |
285 | | IMPL_TRANSLITERATION_ITEM( ignoreDiacritics_CTL ), |
286 | | IMPL_TRANSLITERATION_ITEM( ignoreKashida_CTL ), |
287 | | IMPL_TRANSLITERATION_ITEM( NumToTextCircledNumber ), |
288 | | |
289 | | #if WITH_LOCALE_ALL || WITH_LOCALE_hi |
290 | | IMPL_TRANSLITERATION_ITEM( NumToCharIndic_hi ), |
291 | | #endif |
292 | | |
293 | | #if WITH_LOCALE_ALL || WITH_LOCALE_ja |
294 | | { TRLT_SERVICELNAME_L10N, |
295 | | TRLT_IMPLNAME_PREFIX "HIRAGANA_KATAKANA", |
296 | | &hiraganaToKatakana_CreateInstance }, |
297 | | { TRLT_SERVICELNAME_L10N, |
298 | | TRLT_IMPLNAME_PREFIX "KATAKANA_HIRAGANA", |
299 | | &katakanaToHiragana_CreateInstance }, |
300 | | { TRLT_SERVICELNAME_L10N, |
301 | | TRLT_IMPLNAME_PREFIX "FULLWIDTH_HALFWIDTH", |
302 | | &fullwidthToHalfwidth_CreateInstance }, |
303 | | { TRLT_SERVICELNAME_L10N, |
304 | | TRLT_IMPLNAME_PREFIX "HALFWIDTH_FULLWIDTH", |
305 | | &halfwidthToFullwidth_CreateInstance }, |
306 | | |
307 | | IMPL_TRANSLITERATION_ITEM( ignoreBaFa_ja_JP ), |
308 | | IMPL_TRANSLITERATION_ITEM( ignoreHyuByu_ja_JP ), |
309 | | IMPL_TRANSLITERATION_ITEM( ignoreIandEfollowedByYa_ja_JP ), |
310 | | IMPL_TRANSLITERATION_ITEM( ignoreIterationMark_ja_JP ), |
311 | | IMPL_TRANSLITERATION_ITEM( ignoreKiKuFollowedBySa_ja_JP ), |
312 | | IMPL_TRANSLITERATION_ITEM( ignoreMiddleDot_ja_JP ), |
313 | | IMPL_TRANSLITERATION_ITEM( ignoreMinusSign_ja_JP ), |
314 | | IMPL_TRANSLITERATION_ITEM( ignoreProlongedSoundMark_ja_JP ), |
315 | | IMPL_TRANSLITERATION_ITEM( ignoreSeparator_ja_JP ), |
316 | | IMPL_TRANSLITERATION_ITEM( ignoreSeZe_ja_JP ), |
317 | | IMPL_TRANSLITERATION_ITEM( ignoreSize_ja_JP ), |
318 | | IMPL_TRANSLITERATION_ITEM( ignoreSpace_ja_JP ), |
319 | | IMPL_TRANSLITERATION_ITEM( ignoreTiJi_ja_JP ), |
320 | | IMPL_TRANSLITERATION_ITEM( ignoreTraditionalKana_ja_JP ), |
321 | | IMPL_TRANSLITERATION_ITEM( ignoreTraditionalKanji_ja_JP ), |
322 | | IMPL_TRANSLITERATION_ITEM( ignoreZiZu_ja_JP ), |
323 | | IMPL_TRANSLITERATION_ITEM( largeToSmall_ja_JP ), |
324 | | IMPL_TRANSLITERATION_ITEM( NumToCharFullwidth ), |
325 | | IMPL_TRANSLITERATION_ITEM( NumToCharHalfwidth ), |
326 | | IMPL_TRANSLITERATION_ITEM( NumToCharKanjiShort_ja_JP ), |
327 | | IMPL_TRANSLITERATION_ITEM( NumToCharKanjiTraditional_ja_JP ), |
328 | | IMPL_TRANSLITERATION_ITEM( NumToTextFullwidth_ja_JP ), |
329 | | IMPL_TRANSLITERATION_ITEM( NumToTextKanjiLongModern_ja_JP ), |
330 | | IMPL_TRANSLITERATION_ITEM( NumToTextKanjiLongTraditional_ja_JP ), |
331 | | IMPL_TRANSLITERATION_ITEM( NumToTextKanjiShortModern_ja_JP ), |
332 | | IMPL_TRANSLITERATION_ITEM( NumToTextKanjiShortTraditional_ja_JP ), |
333 | | IMPL_TRANSLITERATION_ITEM( smallToLarge_ja_JP ), |
334 | | IMPL_TRANSLITERATION_ITEM( TextToNumKanjiLongModern_ja_JP ), |
335 | | IMPL_TRANSLITERATION_ITEM( TextToNumKanjiLongTraditional_ja_JP ), |
336 | | #endif |
337 | | |
338 | | #if WITH_LOCALE_ALL || WITH_LOCALE_ko |
339 | | IMPL_TRANSLITERATION_ITEM( NumToCharHangul_ko ), |
340 | | IMPL_TRANSLITERATION_ITEM( NumToCharLower_ko ), |
341 | | IMPL_TRANSLITERATION_ITEM( NumToCharUpper_ko ), |
342 | | IMPL_TRANSLITERATION_ITEM( NumToTextFullwidth_ko ), |
343 | | IMPL_TRANSLITERATION_ITEM( TextToNumFormalHangul_ko ), |
344 | | IMPL_TRANSLITERATION_ITEM( TextToNumFormalLower_ko ), |
345 | | IMPL_TRANSLITERATION_ITEM( TextToNumFormalUpper_ko ), |
346 | | IMPL_TRANSLITERATION_ITEM( TextToNumInformalHangul_ko ), |
347 | | IMPL_TRANSLITERATION_ITEM( TextToNumInformalLower_ko ), |
348 | | IMPL_TRANSLITERATION_ITEM( TextToNumInformalUpper_ko ), |
349 | | #endif |
350 | | |
351 | | #if WITH_LOCALE_ALL || WITH_LOCALE_th |
352 | | IMPL_TRANSLITERATION_ITEM( NumToChar_th ), |
353 | | #endif |
354 | | |
355 | | #if WITH_LOCALE_ALL || WITH_LOCALE_zh |
356 | | IMPL_TRANSLITERATION_ITEM( NumToCharLower_zh_CN ), |
357 | | IMPL_TRANSLITERATION_ITEM( NumToCharLower_zh_TW ), |
358 | | IMPL_TRANSLITERATION_ITEM( NumToCharUpper_zh_CN ), |
359 | | IMPL_TRANSLITERATION_ITEM( NumToCharUpper_zh_TW ), |
360 | | IMPL_TRANSLITERATION_ITEM( NumToTextDate_zh ), |
361 | | IMPL_TRANSLITERATION_ITEM( NumToTextDiZi_zh ), |
362 | | IMPL_TRANSLITERATION_ITEM( NumToTextTianGan_zh ), |
363 | | IMPL_TRANSLITERATION_ITEM( TextToChuyin_zh_TW ), |
364 | | IMPL_TRANSLITERATION_ITEM( TextToNumLower_zh_CN ), |
365 | | IMPL_TRANSLITERATION_ITEM( TextToNumLower_zh_TW ), |
366 | | IMPL_TRANSLITERATION_ITEM( TextToNumUpper_zh_CN ), |
367 | | IMPL_TRANSLITERATION_ITEM( TextToNumUpper_zh_TW ), |
368 | | IMPL_TRANSLITERATION_ITEM( TextToPinyin_zh_CN ), |
369 | | #endif |
370 | | |
371 | | { nullptr, nullptr, nullptr } |
372 | | }; |
373 | | |
374 | | |
375 | | extern "C" |
376 | | { |
377 | | |
378 | | SAL_DLLPUBLIC_EXPORT void* i18npool_component_getFactory( const char* sImplementationName, void* _pServiceManager, SAL_UNUSED_PARAMETER void* /*_pRegistryKey*/ ) |
379 | 0 | { |
380 | 0 | void* pRet = nullptr; |
381 | |
|
382 | 0 | lang::XMultiServiceFactory* pServiceManager = |
383 | 0 | static_cast< lang::XMultiServiceFactory* >( _pServiceManager ); |
384 | 0 | uno::Reference< lang::XSingleServiceFactory > xFactory; |
385 | |
|
386 | 0 | for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr ) |
387 | 0 | { |
388 | 0 | if( 0 == rtl_str_compare( sImplementationName, pArr->pImplementationNm ) ) |
389 | 0 | { |
390 | 0 | uno::Sequence< OUString > aServiceNames { |
391 | 0 | OUString::createFromAscii( pArr->pServiceNm ) }; |
392 | 0 | xFactory = ::cppu::createSingleFactory( |
393 | 0 | pServiceManager, |
394 | 0 | OUString::createFromAscii( pArr->pImplementationNm ), |
395 | 0 | *pArr->pFn, aServiceNames ); |
396 | 0 | break; |
397 | 0 | } |
398 | 0 | } |
399 | |
|
400 | 0 | if ( xFactory.is() ) |
401 | 0 | { |
402 | 0 | xFactory->acquire(); |
403 | 0 | pRet = xFactory.get(); |
404 | 0 | } |
405 | |
|
406 | 0 | return pRet; |
407 | 0 | } |
408 | | |
409 | | } // "C" |
410 | | |
411 | | /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |