1 /******************************************************************************
5 * Copyright (C) 1997-2012 by Dimitri van Heesch.
7 * Permission to use, copy, modify, and distribute this software and its
8 * documentation under the terms of the GNU General Public License is hereby
9 * granted. No representations are made about the suitability of this software
10 * for any purpose. It is provided "as is" without express or implied warranty.
11 * See the GNU General Public License for more details.
13 * Documents produced by Doxygen are derivative works derived from the
14 * input used in their production; they are not affected by this license.
21 #include "translator.h"
22 #include "translatordecoder.h"
23 #include "translator_en.h"
24 #if !defined(ENGLISH_ONLY)
25 #include "translator_adapter.h"
27 #include "translator_nl.h"
30 #include "translator_am.h"
33 #include "translator_sv.h"
36 #include "translator_cz.h"
39 #include "translator_fr.h"
42 #include "translator_id.h"
45 #include "translator_it.h"
48 #include "translator_de.h"
51 #include "translator_jp.h"
54 #include "translator_je.h"
57 #include "translator_es.h"
60 #include "translator_eo.h"
63 #include "translator_fi.h"
66 #include "translator_ru.h"
69 #include "translator_hr.h"
72 #include "translator_pl.h"
75 #include "translator_pt.h"
78 #include "translator_hu.h"
81 #include "translator_ke.h"
84 #include "translator_kr.h"
87 #include "translator_ro.h"
90 #include "translator_si.h"
93 #include "translator_cn.h"
96 #include "translator_tw.h"
99 #include "translator_no.h"
102 #include "translator_br.h"
105 #include "translator_dk.h"
108 #include "translator_sk.h"
111 #include "translator_ua.h"
114 #include "translator_gr.h"
117 #include "translator_sr.h"
120 #include "translator_ca.h"
123 //#include "translator_js.h"
126 #include "translator_lt.h"
129 #include "translator_za.h"
132 #include "translator_ar.h"
135 #include "translator_fa.h"
138 #include "translator_mk.h"
141 #include "translator_sc.h"
144 #include "translator_vi.h"
147 #include "translator_tr.h"
149 #endif // !ENGLISH_ONLY
151 #define L_EQUAL(a) !stricmp(langName,a)
153 Translator *theTranslator=0;
155 static const char obsoleteMsg[] =
157 "ERROR: The selected language is no longer supported!\n"
158 "If you want doxygen to produce output in this language \n"
159 "you are kindly requested to help bringing the documentation \n"
160 "up to date. Please read the development section of the manual \n"
161 "for more information or contact Petr Prikryl (Prikryl@skil.cz).\n"
162 "Thanks in advance!\n"
165 bool setTranslator(const char *langName)
167 if (L_EQUAL("english"))
169 theTranslator=new TranslatorEnglish;
171 #if !defined(ENGLISH_ONLY)
173 else if (L_EQUAL("dutch"))
175 theTranslator=new TranslatorDutch;
179 else if (L_EQUAL("armenian"))
181 theTranslator=new TranslatorArmenian;
185 else if (L_EQUAL("swedish"))
187 theTranslator=new TranslatorDecoder(new TranslatorSwedish);
191 else if (L_EQUAL("czech"))
193 theTranslator=new TranslatorCzech;
197 else if (L_EQUAL("french"))
199 theTranslator=new TranslatorDecoder(new TranslatorFrench);
203 else if (L_EQUAL("indonesian"))
205 theTranslator=new TranslatorDecoder(new TranslatorIndonesian);
209 else if (L_EQUAL("italian"))
211 theTranslator=new TranslatorItalian;
215 else if (L_EQUAL("german"))
217 theTranslator=new TranslatorGerman;
221 else if (L_EQUAL("japanese"))
223 theTranslator=new TranslatorDecoder(new TranslatorJapanese);
227 else if (L_EQUAL("japanese-en"))
229 theTranslator=new TranslatorDecoder(new TranslatorJapaneseEn);
233 else if (L_EQUAL("spanish"))
235 theTranslator=new TranslatorSpanish;
239 else if (L_EQUAL("finnish"))
241 theTranslator=new TranslatorFinnish;
245 else if (L_EQUAL("russian"))
247 theTranslator=new TranslatorDecoder(new TranslatorRussian);
251 else if (L_EQUAL("croatian"))
253 theTranslator=new TranslatorCroatian;
257 else if (L_EQUAL("polish"))
259 theTranslator=new TranslatorPolish;
263 else if (L_EQUAL("portuguese"))
265 theTranslator=new TranslatorPortuguese;
269 else if (L_EQUAL("hungarian"))
271 theTranslator=new TranslatorDecoder(new TranslatorHungarian);
275 else if (L_EQUAL("korean"))
277 theTranslator=new TranslatorDecoder(new TranslatorKorean);
281 else if (L_EQUAL("korean-en"))
283 theTranslator=new TranslatorDecoder(new TranslatorKoreanEn);
287 else if (L_EQUAL("romanian"))
289 theTranslator=new TranslatorDecoder(new TranslatorRomanian);
293 else if (L_EQUAL("slovene"))
295 theTranslator=new TranslatorDecoder(new TranslatorSlovene);
299 else if (L_EQUAL("chinese"))
301 theTranslator=new TranslatorChinese;
305 else if (L_EQUAL("chinese-traditional"))
307 theTranslator=new TranslatorDecoder(new TranslatorChinesetraditional);
311 else if (L_EQUAL("norwegian"))
313 theTranslator=new TranslatorDecoder(new TranslatorNorwegian);
317 else if (L_EQUAL("brazilian"))
319 theTranslator=new TranslatorBrazilian;
323 else if (L_EQUAL("danish"))
325 theTranslator=new TranslatorDecoder(new TranslatorDanish);
329 else if (L_EQUAL("slovak"))
331 theTranslator=new TranslatorSlovak;
335 else if (L_EQUAL("ukrainian"))
337 theTranslator=new TranslatorDecoder(new TranslatorUkrainian);
341 else if (L_EQUAL("greek"))
343 theTranslator=new TranslatorGreek;
347 else if (L_EQUAL("serbian"))
349 theTranslator=new TranslatorDecoder(new TranslatorSerbian);
353 else if (L_EQUAL("serbian-cyrilic"))
355 theTranslator=new TranslatorSerbian;
359 else if (L_EQUAL("catalan"))
361 theTranslator=new TranslatorCatalan;
365 else if (L_EQUAL("lithuanian"))
367 theTranslator=new TranslatorDecoder(new TranslatorLithuanian);
371 else if (L_EQUAL("afrikaans"))
373 theTranslator=new TranslatorDecoder(new TranslatorAfrikaans);
377 else if (L_EQUAL("arabic"))
379 theTranslator=new TranslatorDecoder(new TranslatorArabic);
383 else if (L_EQUAL("persian") || L_EQUAL("farsi"))
385 theTranslator=new TranslatorPersian;
389 else if (L_EQUAL("macedonian"))
391 theTranslator=new TranslatorMacedonian;
395 else if (L_EQUAL("vietnamese"))
397 theTranslator=new TranslatorVietnamese;
401 else if (L_EQUAL("turkish"))
403 theTranslator=new TranslatorTurkish;
407 else if (L_EQUAL("esperanto"))
409 theTranslator=new TranslatorEsperanto;
412 #endif // ENGLISH_ONLY
413 else // use the default language (i.e. english)
415 theTranslator=new TranslatorEnglish;
419 QCString msg = theTranslator->updateNeededMessage();
420 if (!msg.isEmpty()) err(msg);