Blame src/language.cpp

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 *
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#include "message.h"
Packit 1c1d7e
#include "config.h"
Packit 1c1d7e
#include "util.h"
Packit 1c1d7e
#include "language.h"
Packit 1c1d7e
#include "lang_cfg.h"
Packit 1c1d7e
#include "translator.h"
Packit 1c1d7e
#include "translator_en.h"
Packit 1c1d7e
#if !defined(ENGLISH_ONLY)
Packit 1c1d7e
#include "translator_adapter.h"
Packit 1c1d7e
#ifdef LANG_NL
Packit 1c1d7e
#include "translator_nl.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_AM
Packit 1c1d7e
#include "translator_am.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SV
Packit 1c1d7e
#include "translator_sv.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_CZ
Packit 1c1d7e
#include "translator_cz.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_FR
Packit 1c1d7e
#include "translator_fr.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_ID
Packit 1c1d7e
#include "translator_id.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_IT
Packit 1c1d7e
#include "translator_it.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_DE
Packit 1c1d7e
#include "translator_de.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_JP
Packit 1c1d7e
#include "translator_jp.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_JE
Packit 1c1d7e
#include "translator_je.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_ES
Packit 1c1d7e
#include "translator_es.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_EO
Packit 1c1d7e
#include "translator_eo.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_FI
Packit 1c1d7e
#include "translator_fi.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_RU
Packit 1c1d7e
#include "translator_ru.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_HR
Packit 1c1d7e
#include "translator_hr.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_PL
Packit 1c1d7e
#include "translator_pl.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_PT
Packit 1c1d7e
#include "translator_pt.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_HU
Packit 1c1d7e
#include "translator_hu.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_KE
Packit 1c1d7e
#include "translator_ke.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_KR
Packit 1c1d7e
#include "translator_kr.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_RO
Packit 1c1d7e
#include "translator_ro.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SI
Packit 1c1d7e
#include "translator_si.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_CN
Packit 1c1d7e
#include "translator_cn.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_TW
Packit 1c1d7e
#include "translator_tw.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_NO
Packit 1c1d7e
#include "translator_no.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_BR
Packit 1c1d7e
#include "translator_br.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_DK
Packit 1c1d7e
#include "translator_dk.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SK
Packit 1c1d7e
#include "translator_sk.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_UA
Packit 1c1d7e
#include "translator_ua.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_GR
Packit 1c1d7e
#include "translator_gr.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SR
Packit 1c1d7e
#include "translator_sr.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_CA
Packit 1c1d7e
#include "translator_ca.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
//#ifdef LANG_JS
Packit 1c1d7e
//#include "translator_js.h"
Packit 1c1d7e
//#endif
Packit 1c1d7e
#ifdef LANG_LT
Packit 1c1d7e
#include "translator_lt.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_LV
Packit 1c1d7e
#include "translator_lv.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_ZA
Packit 1c1d7e
#include "translator_za.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_AR
Packit 1c1d7e
#include "translator_ar.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_FA
Packit 1c1d7e
#include "translator_fa.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_MK
Packit 1c1d7e
#include "translator_mk.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SC
Packit 1c1d7e
#include "translator_sc.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_VI
Packit 1c1d7e
#include "translator_vi.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_TR
Packit 1c1d7e
#include "translator_tr.h"
Packit 1c1d7e
#endif
Packit 1c1d7e
#endif // !ENGLISH_ONLY
Packit 1c1d7e
Packit 1c1d7e
#define L_EQUAL(a) !qstricmp(langName,a)
Packit 1c1d7e
Packit 1c1d7e
Translator *theTranslator=0;
Packit 1c1d7e
Packit 1c1d7e
bool setTranslator(const char *langName)
Packit 1c1d7e
{
Packit 1c1d7e
  if (L_EQUAL("english"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorEnglish;
Packit 1c1d7e
  }
Packit 1c1d7e
#if !defined(ENGLISH_ONLY)
Packit 1c1d7e
#ifdef LANG_NL
Packit 1c1d7e
  else if (L_EQUAL("dutch"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorDutch;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_AM
Packit 1c1d7e
  else if (L_EQUAL("armenian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorArmenian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SV
Packit 1c1d7e
  else if (L_EQUAL("swedish"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorSwedish;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_CZ
Packit 1c1d7e
  else if (L_EQUAL("czech"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorCzech;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_FR
Packit 1c1d7e
  else if (L_EQUAL("french"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorFrench;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_ID
Packit 1c1d7e
  else if (L_EQUAL("indonesian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorIndonesian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_IT
Packit 1c1d7e
  else if (L_EQUAL("italian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorItalian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_DE
Packit 1c1d7e
  else if (L_EQUAL("german"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorGerman;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_JP
Packit 1c1d7e
  else if (L_EQUAL("japanese"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorJapanese;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_JE
Packit 1c1d7e
  else if (L_EQUAL("japanese-en"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorJapaneseEn;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_ES
Packit 1c1d7e
  else if (L_EQUAL("spanish"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorSpanish;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_FI
Packit 1c1d7e
  else if (L_EQUAL("finnish"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorFinnish;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_RU
Packit 1c1d7e
  else if (L_EQUAL("russian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorRussian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_HR
Packit 1c1d7e
  else if (L_EQUAL("croatian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorCroatian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_PL
Packit 1c1d7e
  else if (L_EQUAL("polish"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorPolish;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_PT
Packit 1c1d7e
  else if (L_EQUAL("portuguese"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorPortuguese;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_HU
Packit 1c1d7e
  else if (L_EQUAL("hungarian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorHungarian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_KR
Packit 1c1d7e
  else if (L_EQUAL("korean"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorKorean;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_KE
Packit 1c1d7e
  else if (L_EQUAL("korean-en"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorKoreanEn;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_RO
Packit 1c1d7e
  else if (L_EQUAL("romanian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorRomanian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SI
Packit 1c1d7e
  else if (L_EQUAL("slovene"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorSlovene;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_CN
Packit 1c1d7e
  else if (L_EQUAL("chinese"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorChinese;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_TW
Packit 1c1d7e
  else if (L_EQUAL("chinese-traditional"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorChinesetraditional;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_NO
Packit 1c1d7e
  else if (L_EQUAL("norwegian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorNorwegian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_BR
Packit 1c1d7e
  else if (L_EQUAL("brazilian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorBrazilian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_DK
Packit 1c1d7e
  else if (L_EQUAL("danish"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorDanish;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SK
Packit 1c1d7e
  else if (L_EQUAL("slovak"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorSlovak;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_UA
Packit 1c1d7e
  else if (L_EQUAL("ukrainian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorUkrainian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_GR
Packit 1c1d7e
  else if (L_EQUAL("greek"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorGreek;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SR
Packit 1c1d7e
  else if (L_EQUAL("serbian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorSerbian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_SC
Packit 1c1d7e
  else if (L_EQUAL("serbian-cyrillic") || L_EQUAL("serbiancyr")) /* serbiancyr for consistency with older versions */
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorSerbianCyrillic;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_CA
Packit 1c1d7e
  else if (L_EQUAL("catalan"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorCatalan;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_LT
Packit 1c1d7e
  else if (L_EQUAL("lithuanian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorLithuanian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_LV
Packit 1c1d7e
  else if (L_EQUAL("latvian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorLatvian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_ZA
Packit 1c1d7e
  else if (L_EQUAL("afrikaans"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorAfrikaans;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_AR
Packit 1c1d7e
  else if (L_EQUAL("arabic"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorArabic;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_FA
Packit 1c1d7e
  else if (L_EQUAL("persian") || L_EQUAL("farsi"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorPersian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_MK
Packit 1c1d7e
  else if (L_EQUAL("macedonian"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorMacedonian;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_VI
Packit 1c1d7e
  else if (L_EQUAL("vietnamese"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorVietnamese;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_TR
Packit 1c1d7e
  else if (L_EQUAL("turkish"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorTurkish;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#ifdef LANG_EO
Packit 1c1d7e
  else if (L_EQUAL("esperanto"))
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorEsperanto;
Packit 1c1d7e
  }
Packit 1c1d7e
#endif
Packit 1c1d7e
#endif // ENGLISH_ONLY
Packit 1c1d7e
  else // use the default language (i.e. english)
Packit 1c1d7e
  {
Packit 1c1d7e
    theTranslator=new TranslatorEnglish;
Packit 1c1d7e
    return FALSE;
Packit 1c1d7e
  }
Packit 1c1d7e
Packit 1c1d7e
  QCString msg = theTranslator->updateNeededMessage();
Packit 1c1d7e
  if (!msg.isEmpty()) warn_uncond(msg);
Packit 1c1d7e
  return TRUE;
Packit 1c1d7e
}