view software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/general/Language.java @ 20:7d6d969b10cf

little corrections
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Wed, 14 Dec 2011 12:48:43 +0100
parents 4a3641ae14d2
children
line wrap: on
line source

package de.mpg.mpiwg.berlin.mpdl.lt.general;

import java.util.HashMap;

/**
 * 
 * Language codes from ISO 639-3
 *
 */
public class Language {
  private static Language instance;
  private static HashMap<String, String> languageIds = new HashMap<String, String>();
  private static HashMap<String, String> iso639Codes = new HashMap<String, String>();
  
  public static Language getInstance() {
    if (instance == null) {
      instance = new Language();
      instance.init();
    }
    return instance;
  }

  private void init() {
    languageIds.put("ar", "ar");
    languageIds.put("ara", "ar");
    languageIds.put("de", "de");
    languageIds.put("ger", "de");
    languageIds.put("deu", "de");
    languageIds.put("el", "el");
    languageIds.put("grc", "el");
    languageIds.put("en", "en");
    languageIds.put("eng", "en");
    languageIds.put("fr", "fr");
    languageIds.put("fra", "fr");
    languageIds.put("it", "it");
    languageIds.put("ita", "it");
    languageIds.put("la", "la");
    languageIds.put("lat", "la");
    languageIds.put("nl", "nl");
    languageIds.put("nld", "nl");
    languageIds.put("zh", "zh");
    languageIds.put("zho", "zh");
    languageIds.put("zho-Hant", "zh");

    iso639Codes.put("ar", "ara");
    iso639Codes.put("ara", "ara");
    iso639Codes.put("de", "ger");
    iso639Codes.put("ger", "ger");
    iso639Codes.put("deu", "ger");
    iso639Codes.put("el", "grc");
    iso639Codes.put("grc", "grc");
    iso639Codes.put("en", "eng");
    iso639Codes.put("eng", "eng");
    iso639Codes.put("fr", "fra");
    iso639Codes.put("fra", "fra");
    iso639Codes.put("it", "ita");
    iso639Codes.put("ita", "ita");
    iso639Codes.put("la", "lat");
    iso639Codes.put("lat", "lat");
    iso639Codes.put("nl", "nld");
    iso639Codes.put("nld", "nld");
    iso639Codes.put("zh", "zho");
    iso639Codes.put("zho", "zho");
    iso639Codes.put("zho-Hant", "zho");
  }
  
  public String getISO639Code(String language) {
    if (language == null)
      return null;
    String retISO639Code = null;
    retISO639Code = iso639Codes.get(language);
    return retISO639Code;
  }

  public String getLanguageId(String language) {
    if (language == null)
      return null;
    String retLanguageId = null;
    retLanguageId = languageIds.get(language);
    return retLanguageId;
  }
  
  public boolean isLatin(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("la"))
      return true;
    else 
      return false;
  }

  public boolean isGerman(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("de"))
      return true;
    else 
      return false;
  }

  public boolean isFrench(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("fr"))
      return true;
    else 
      return false;
  }

  public boolean isEnglish(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("en"))
      return true;
    else 
      return false;
  }

  public boolean isDutch(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("nl"))
      return true;
    else 
      return false;
  }

  public boolean isGreek(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("el"))
      return true;
    else 
      return false;
  }

  public boolean isArabic(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("ar"))
      return true;
    else 
      return false;
  }

  public boolean isItalian(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("it"))
      return true;
    else 
      return false;
  }

  public boolean isChinese(String language) {
    String langId = getLanguageId(language);
    if (langId == null)
      return false;
    if (langId.equals("zh"))
      return true;
    else 
      return false;
  }
  
  public String getHtmlSelectBox(String language) {
    String result = "<select name=\"language\">";
    if (isArabic(language))
      result = result + "<option value =\"ara\" selected=\"true\">Arabic</option>";
    else
      result = result + "<option value =\"ara\">Arabic</option>";
    if (isChinese(language))
      result = result + "<option value =\"zho\" selected=\"true\">Chinese</option>";
    else
      result = result + "<option value =\"zho\">Chinese</option>";
    if (isDutch(language))
      result = result + "<option value =\"nld\" selected=\"true\">Dutch</option>";
    else
      result = result + "<option value =\"nld\">Dutch</option>";
    if (isEnglish(language))
      result = result + "<option value =\"eng\" selected=\"true\">English</option>";
    else
      result = result + "<option value =\"eng\">English</option>";
    if (isFrench(language))
      result = result + "<option value =\"fra\" selected=\"true\">French</option>";
    else
      result = result + "<option value =\"fra\">French</option>";
    if (isGerman(language))
      result = result + "<option value =\"ger\" selected=\"true\">German</option>";
    else
      result = result + "<option value =\"ger\">German</option>";
    if (isGreek(language))
      result = result + "<option value =\"grc\" selected=\"true\">Greek</option>";
    else
      result = result + "<option value =\"grc\">Greek</option>";
    if (isItalian(language))
      result = result + "<option value =\"ita\" selected=\"true\">Italian</option>";
    else
      result = result + "<option value =\"ita\">Italian</option>";
    if (isLatin(language))
      result = result + "<option value =\"lat\" selected=\"true\">Latin</option>";
    else
      result = result + "<option value =\"lat\">Latin</option>";
    result = result + "</select>";
    return result;
  }
}