view software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/general/Language.java @ 19:4a3641ae14d2

Erstellung
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Wed, 09 Nov 2011 15:32:05 +0100
parents
children 7d6d969b10cf
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;
  }
}