|
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 #include "mozilla/ModuleUtils.h" |
|
7 |
|
8 // lwbrk |
|
9 #include "nsLWBrkCIID.h" |
|
10 #include "nsJISx4051LineBreaker.h" |
|
11 #include "nsSampleWordBreaker.h" |
|
12 |
|
13 #include "nsSemanticUnitScanner.h" |
|
14 |
|
15 // unicharutil |
|
16 #include "nsCategoryImp.h" |
|
17 #include "nsUnicharUtilCIID.h" |
|
18 #include "nsCaseConversionImp2.h" |
|
19 #include "nsEntityConverter.h" |
|
20 #include "nsSaveAsCharset.h" |
|
21 #include "nsUnicodeNormalizer.h" |
|
22 |
|
23 // string bundles (intl) |
|
24 #include "nsStringBundleService.h" |
|
25 #include "nsStringBundleTextOverride.h" |
|
26 |
|
27 // locale |
|
28 #include "nsLocaleConstructors.h" |
|
29 |
|
30 // uconv |
|
31 #include "nsCharsetConverterManager.h" |
|
32 |
|
33 NS_GENERIC_FACTORY_CONSTRUCTOR(nsJISx4051LineBreaker) |
|
34 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSampleWordBreaker) |
|
35 |
|
36 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSemanticUnitScanner) |
|
37 |
|
38 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStringBundleService, Init) |
|
39 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStringBundleTextOverride, Init) |
|
40 |
|
41 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCaseConversionImp2) |
|
42 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsCategoryImp, |
|
43 nsCategoryImp::GetInstance) |
|
44 NS_GENERIC_FACTORY_CONSTRUCTOR(nsEntityConverter) |
|
45 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSaveAsCharset) |
|
46 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeNormalizer) |
|
47 |
|
48 NS_DEFINE_NAMED_CID(NS_LBRK_CID); |
|
49 NS_DEFINE_NAMED_CID(NS_WBRK_CID); |
|
50 NS_DEFINE_NAMED_CID(NS_SEMANTICUNITSCANNER_CID); |
|
51 NS_DEFINE_NAMED_CID(NS_UNICHARUTIL_CID); |
|
52 NS_DEFINE_NAMED_CID(NS_UNICHARCATEGORY_CID); |
|
53 NS_DEFINE_NAMED_CID(NS_ENTITYCONVERTER_CID); |
|
54 NS_DEFINE_NAMED_CID(NS_SAVEASCHARSET_CID); |
|
55 NS_DEFINE_NAMED_CID(NS_UNICODE_NORMALIZER_CID); |
|
56 NS_DEFINE_NAMED_CID(NS_STRINGBUNDLESERVICE_CID); |
|
57 NS_DEFINE_NAMED_CID(NS_STRINGBUNDLETEXTOVERRIDE_CID); |
|
58 NS_DEFINE_NAMED_CID(NS_LOCALESERVICE_CID); |
|
59 NS_DEFINE_NAMED_CID(NS_COLLATIONFACTORY_CID); |
|
60 NS_DEFINE_NAMED_CID(NS_SCRIPTABLEDATEFORMAT_CID); |
|
61 NS_DEFINE_NAMED_CID(NS_LANGUAGEATOMSERVICE_CID); |
|
62 NS_DEFINE_NAMED_CID(NS_PLATFORMCHARSET_CID); |
|
63 #ifdef XP_WIN |
|
64 NS_DEFINE_NAMED_CID(NS_COLLATION_CID); |
|
65 NS_DEFINE_NAMED_CID(NS_DATETIMEFORMAT_CID); |
|
66 #endif |
|
67 #ifdef USE_UNIX_LOCALE |
|
68 NS_DEFINE_NAMED_CID(NS_COLLATION_CID); |
|
69 NS_DEFINE_NAMED_CID(NS_DATETIMEFORMAT_CID); |
|
70 #endif |
|
71 #ifdef USE_MAC_LOCALE |
|
72 NS_DEFINE_NAMED_CID(NS_COLLATION_CID); |
|
73 NS_DEFINE_NAMED_CID(NS_DATETIMEFORMAT_CID); |
|
74 #endif |
|
75 |
|
76 static const mozilla::Module::CIDEntry kIntlCIDs[] = { |
|
77 { &kNS_LBRK_CID, false, nullptr, nsJISx4051LineBreakerConstructor }, |
|
78 { &kNS_WBRK_CID, false, nullptr, nsSampleWordBreakerConstructor }, |
|
79 { &kNS_SEMANTICUNITSCANNER_CID, false, nullptr, nsSemanticUnitScannerConstructor }, |
|
80 { &kNS_UNICHARUTIL_CID, false, nullptr, nsCaseConversionImp2Constructor }, |
|
81 { &kNS_UNICHARCATEGORY_CID, false, nullptr, nsCategoryImpConstructor }, |
|
82 { &kNS_ENTITYCONVERTER_CID, false, nullptr, nsEntityConverterConstructor }, |
|
83 { &kNS_SAVEASCHARSET_CID, false, nullptr, nsSaveAsCharsetConstructor }, |
|
84 { &kNS_UNICODE_NORMALIZER_CID, false, nullptr, nsUnicodeNormalizerConstructor }, |
|
85 { &kNS_STRINGBUNDLESERVICE_CID, false, nullptr, nsStringBundleServiceConstructor }, |
|
86 { &kNS_STRINGBUNDLETEXTOVERRIDE_CID, false, nullptr, nsStringBundleTextOverrideConstructor }, |
|
87 { &kNS_LOCALESERVICE_CID, false, nullptr, CreateLocaleService }, |
|
88 { &kNS_COLLATIONFACTORY_CID, false, nullptr, nsCollationFactoryConstructor }, |
|
89 { &kNS_SCRIPTABLEDATEFORMAT_CID, false, nullptr, NS_NewScriptableDateFormat }, |
|
90 { &kNS_LANGUAGEATOMSERVICE_CID, false, nullptr, nsLanguageAtomServiceConstructor }, |
|
91 { &kNS_PLATFORMCHARSET_CID, false, nullptr, nsPlatformCharsetConstructor }, |
|
92 #ifdef XP_WIN |
|
93 { &kNS_COLLATION_CID, false, nullptr, nsCollationWinConstructor }, |
|
94 { &kNS_DATETIMEFORMAT_CID, false, nullptr, nsDateTimeFormatWinConstructor }, |
|
95 #endif |
|
96 #ifdef USE_UNIX_LOCALE |
|
97 { &kNS_COLLATION_CID, false, nullptr, nsCollationUnixConstructor }, |
|
98 { &kNS_DATETIMEFORMAT_CID, false, nullptr, nsDateTimeFormatUnixConstructor }, |
|
99 #endif |
|
100 #ifdef USE_MAC_LOCALE |
|
101 { &kNS_COLLATION_CID, false, nullptr, nsCollationMacUCConstructor }, |
|
102 { &kNS_DATETIMEFORMAT_CID, false, nullptr, nsDateTimeFormatMacConstructor }, |
|
103 #endif |
|
104 { nullptr } |
|
105 }; |
|
106 |
|
107 static const mozilla::Module::ContractIDEntry kIntlContracts[] = { |
|
108 { NS_LBRK_CONTRACTID, &kNS_LBRK_CID }, |
|
109 { NS_WBRK_CONTRACTID, &kNS_WBRK_CID }, |
|
110 { NS_SEMANTICUNITSCANNER_CONTRACTID, &kNS_SEMANTICUNITSCANNER_CID }, |
|
111 { NS_UNICHARUTIL_CONTRACTID, &kNS_UNICHARUTIL_CID }, |
|
112 { NS_UNICHARCATEGORY_CONTRACTID, &kNS_UNICHARCATEGORY_CID }, |
|
113 { NS_ENTITYCONVERTER_CONTRACTID, &kNS_ENTITYCONVERTER_CID }, |
|
114 { NS_SAVEASCHARSET_CONTRACTID, &kNS_SAVEASCHARSET_CID }, |
|
115 { NS_UNICODE_NORMALIZER_CONTRACTID, &kNS_UNICODE_NORMALIZER_CID }, |
|
116 { NS_STRINGBUNDLE_CONTRACTID, &kNS_STRINGBUNDLESERVICE_CID }, |
|
117 { NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID, &kNS_STRINGBUNDLETEXTOVERRIDE_CID }, |
|
118 { NS_LOCALESERVICE_CONTRACTID, &kNS_LOCALESERVICE_CID }, |
|
119 { NS_COLLATIONFACTORY_CONTRACTID, &kNS_COLLATIONFACTORY_CID }, |
|
120 { NS_SCRIPTABLEDATEFORMAT_CONTRACTID, &kNS_SCRIPTABLEDATEFORMAT_CID }, |
|
121 { NS_LANGUAGEATOMSERVICE_CONTRACTID, &kNS_LANGUAGEATOMSERVICE_CID }, |
|
122 { NS_PLATFORMCHARSET_CONTRACTID, &kNS_PLATFORMCHARSET_CID }, |
|
123 #ifdef XP_WIN |
|
124 { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID }, |
|
125 { NS_DATETIMEFORMAT_CONTRACTID, &kNS_DATETIMEFORMAT_CID }, |
|
126 #endif |
|
127 #ifdef USE_UNIX_LOCALE |
|
128 { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID }, |
|
129 { NS_DATETIMEFORMAT_CONTRACTID, &kNS_DATETIMEFORMAT_CID }, |
|
130 #endif |
|
131 #ifdef USE_MAC_LOCALE |
|
132 { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID }, |
|
133 { NS_DATETIMEFORMAT_CONTRACTID, &kNS_DATETIMEFORMAT_CID }, |
|
134 #endif |
|
135 { nullptr } |
|
136 }; |
|
137 |
|
138 static void |
|
139 I18nModuleDtor() |
|
140 { |
|
141 nsCharsetConverterManager::Shutdown(); |
|
142 } |
|
143 |
|
144 static const mozilla::Module kIntlModule = { |
|
145 mozilla::Module::kVersion, |
|
146 kIntlCIDs, |
|
147 kIntlContracts, |
|
148 nullptr, |
|
149 nullptr, |
|
150 nullptr, |
|
151 I18nModuleDtor |
|
152 }; |
|
153 |
|
154 NSMODULE_DEFN(nsI18nModule) = &kIntlModule; |