|
1 /* |
|
2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 /** |
|
20 @file |
|
21 @internalComponent |
|
22 @released |
|
23 */ |
|
24 |
|
25 #include "sislanguage.h" |
|
26 #include "utility.h" |
|
27 |
|
28 // Language options |
|
29 static const SKeyword KLanguages [] = |
|
30 { |
|
31 { L"EN", CSISLanguage::ELangEnglish }, |
|
32 { L"FR", CSISLanguage::ELangFrench}, |
|
33 { L"GE", CSISLanguage::ELangGerman}, |
|
34 { L"SP", CSISLanguage::ELangSpanish}, |
|
35 { L"IT", CSISLanguage::ELangItalian}, |
|
36 { L"SW", CSISLanguage::ELangSwedish}, |
|
37 { L"DA", CSISLanguage::ELangDanish}, |
|
38 { L"NO", CSISLanguage::ELangNorwegian}, |
|
39 { L"FI", CSISLanguage::ELangFinnish}, |
|
40 { L"AM", CSISLanguage::ELangAmerican}, |
|
41 { L"SF", CSISLanguage::ELangSwissFrench}, |
|
42 { L"SG", CSISLanguage::ELangSwissGerman}, |
|
43 { L"PO", CSISLanguage::ELangPortuguese}, |
|
44 { L"TU", CSISLanguage::ELangTurkish}, |
|
45 { L"IC", CSISLanguage::ELangIcelandic}, |
|
46 { L"RU", CSISLanguage::ELangRussian}, |
|
47 { L"HU", CSISLanguage::ELangHungarian}, |
|
48 { L"DU", CSISLanguage::ELangDutch}, |
|
49 { L"BL", CSISLanguage::ELangBelgianFlemish}, |
|
50 { L"AU", CSISLanguage::ELangAustralian}, |
|
51 { L"BF", CSISLanguage::ELangBelgianFrench}, |
|
52 { L"AS", CSISLanguage::ELangAustrian}, |
|
53 { L"NZ", CSISLanguage::ELangNewZealand}, |
|
54 { L"IF", CSISLanguage::ELangInternationalFrench}, |
|
55 { L"CS", CSISLanguage::ELangCzech}, |
|
56 { L"SK", CSISLanguage::ELangSlovak}, |
|
57 { L"PL", CSISLanguage::ELangPolish}, |
|
58 { L"SL", CSISLanguage::ELangSlovenian}, |
|
59 { L"TC", CSISLanguage::ELangTaiwanChinese}, |
|
60 { L"HK", CSISLanguage::ELangHongKongChinese}, |
|
61 { L"ZH", CSISLanguage::ELangPrcChinese}, |
|
62 { L"JA", CSISLanguage::ELangJapanese}, |
|
63 { L"TH", CSISLanguage::ELangThai}, |
|
64 |
|
65 { L"AF", CSISLanguage::ELangAfrikaans }, |
|
66 { L"SQ", CSISLanguage::ELangAlbanian }, |
|
67 { L"AH", CSISLanguage::ELangAmharic }, |
|
68 { L"AR", CSISLanguage::ELangArabic }, |
|
69 { L"HY", CSISLanguage::ELangArmenian }, |
|
70 { L"TL", CSISLanguage::ELangTagalog }, |
|
71 { L"BE", CSISLanguage::ELangBelarussian }, |
|
72 { L"BN", CSISLanguage::ELangBengali }, |
|
73 { L"BG", CSISLanguage::ELangBulgarian }, |
|
74 { L"MY", CSISLanguage::ELangBurmese }, |
|
75 { L"CA", CSISLanguage::ELangCatalan }, |
|
76 { L"HR", CSISLanguage::ELangCroatian }, |
|
77 { L"CE", CSISLanguage::ELangCanadianEnglish }, |
|
78 { L"IE", CSISLanguage::ELangInternationalEnglish }, |
|
79 { L"SA", CSISLanguage::ELangSouthAfricanEnglish }, |
|
80 { L"ET", CSISLanguage::ELangEstonian }, |
|
81 { L"FA", CSISLanguage::ELangFarsi }, |
|
82 { L"CF", CSISLanguage::ELangCanadianFrench }, |
|
83 { L"GD", CSISLanguage::ELangScotsGaelic }, |
|
84 { L"KA", CSISLanguage::ELangGeorgian }, |
|
85 { L"EL", CSISLanguage::ELangGreek }, |
|
86 { L"CG", CSISLanguage::ELangCyprusGreek }, |
|
87 { L"GU", CSISLanguage::ELangGujarati }, |
|
88 { L"HE", CSISLanguage::ELangHebrew }, |
|
89 { L"HI", CSISLanguage::ELangHindi }, |
|
90 { L"IN", CSISLanguage::ELangIndonesian }, |
|
91 { L"GA", CSISLanguage::ELangIrish }, |
|
92 { L"SZ", CSISLanguage::ELangSwissItalian }, |
|
93 { L"KN", CSISLanguage::ELangKannada }, |
|
94 { L"KK", CSISLanguage::ELangKazakh }, |
|
95 { L"KM", CSISLanguage::ELangKhmer }, |
|
96 { L"KO", CSISLanguage::ELangKorean }, |
|
97 { L"LO", CSISLanguage::ELangLao }, |
|
98 { L"LV", CSISLanguage::ELangLatvian }, |
|
99 { L"LT", CSISLanguage::ELangLithuanian }, |
|
100 { L"MK", CSISLanguage::ELangMacedonian }, |
|
101 { L"MS", CSISLanguage::ELangMalay }, |
|
102 { L"ML", CSISLanguage::ELangMalayalam }, |
|
103 { L"MR", CSISLanguage::ELangMarathi }, |
|
104 { L"MO", CSISLanguage::ELangMoldavian }, |
|
105 { L"MN", CSISLanguage::ELangMongolian }, |
|
106 { L"NN", CSISLanguage::ELangNorwegianNynorsk }, |
|
107 { L"BP", CSISLanguage::ELangBrazilianPortuguese }, |
|
108 { L"PA", CSISLanguage::ELangPunjabi }, |
|
109 { L"RO", CSISLanguage::ELangRomanian }, |
|
110 { L"SR", CSISLanguage::ELangSerbian }, |
|
111 { L"SI", CSISLanguage::ELangSinhalese }, |
|
112 { L"SO", CSISLanguage::ELangSomali }, |
|
113 { L"OS", CSISLanguage::ELangInternationalSpanish }, |
|
114 { L"LS", CSISLanguage::ELangLatinAmericanSpanish }, |
|
115 { L"SH", CSISLanguage::ELangSwahili }, |
|
116 { L"FS", CSISLanguage::ELangFinlandSwedish }, |
|
117 //{L"??", CSISLanguage::ELangReserved1 }, |
|
118 { L"TA", CSISLanguage::ELangTamil }, |
|
119 { L"TE", CSISLanguage::ELangTelugu }, |
|
120 { L"BO", CSISLanguage::ELangTibetan }, |
|
121 { L"TI", CSISLanguage::ELangTigrinya }, |
|
122 { L"CT", CSISLanguage::ELangCyprusTurkish }, |
|
123 { L"TK", CSISLanguage::ELangTurkmen }, |
|
124 { L"UK", CSISLanguage::ELangUkrainian }, |
|
125 { L"UR", CSISLanguage::ELangUrdu }, |
|
126 //{L"??", CSISLanguage::ELangReserved2 }, |
|
127 { L"VI", CSISLanguage::ELangVietnamese }, |
|
128 { L"CY", CSISLanguage::ELangWelsh }, |
|
129 { L"ZU", CSISLanguage::ELangZulu }, |
|
130 { L"BA", CSISLanguage::ELangBasque }, |
|
131 { L"GL", CSISLanguage::ELangGalician }, |
|
132 //{L"??", CSISLanguage::ELangOther }, |
|
133 //{L"??", CSISLanguage::ELangNone } |
|
134 |
|
135 { NULL, CSISLanguage::ELangNone } |
|
136 |
|
137 }; |
|
138 |
|
139 |
|
140 |
|
141 CSISLanguage::TDialect CSISLanguage::IdentifyLanguage (const std::wstring& aIdentifier) |
|
142 { |
|
143 return IdentifyUCKeyword (KLanguages, aIdentifier, L"Unknown language: "); |
|
144 } |
|
145 |
|
146 |
|
147 |
|
148 std::string CSISLanguage::Name () const |
|
149 { |
|
150 return "Language"; |
|
151 } |
|
152 |
|
153 const wchar_t* CSISLanguage::GetLanguageCode(TDialect& aDialect) const |
|
154 { |
|
155 aDialect = iLanguage & ~0x3FF; |
|
156 TLanguage language = (TLanguage) (iLanguage & 0x3FF); |
|
157 |
|
158 for (int i=0; KLanguages[i].iName != NULL; ++i) |
|
159 { |
|
160 if (KLanguages[i].iId == (TUint32)language) |
|
161 { |
|
162 return KLanguages[i].iName; |
|
163 } |
|
164 } |
|
165 return L"Unknown"; |
|
166 } |
|
167 |
|
168 void CSISLanguage::AddPackageEntry(std::wostream& aStream, bool aVerbose) const |
|
169 { |
|
170 TDialect dialect = 0; |
|
171 aStream << GetLanguageCode(dialect); |
|
172 if (dialect != 0) |
|
173 { |
|
174 aStream << L"(" << dialect.Value() << L")"; |
|
175 } |
|
176 } |
|
177 |