コード例 #1
0
  private void adjustLanguage() {
    Language lang = (Language) getValue(ConfigEntryType.LANG);
    if (lang == null) {
      lang = Language.DEFAULT_LANG;
      add(ConfigEntryType.LANG, lang.toString());
    }
    testLanguage(internal, lang);

    Language langFrom = (Language) getValue(ConfigEntryType.GLOSSARY_FROM);
    Language langTo = (Language) getValue(ConfigEntryType.GLOSSARY_TO);

    // If we have either langFrom or langTo, we are dealing with a glossary
    if (langFrom != null || langTo != null) {
      if (langFrom == null) {
        log.warn(
            "Missing data for "
                + internal
                + ". Assuming "
                + ConfigEntryType.GLOSSARY_FROM.getName()
                + '='
                + Languages.DEFAULT_LANG_CODE);
        langFrom = Language.DEFAULT_LANG;
        add(ConfigEntryType.GLOSSARY_FROM, lang.getCode());
      }
      testLanguage(internal, langFrom);

      if (langTo == null) {
        log.warn(
            "Missing data for "
                + internal
                + ". Assuming "
                + ConfigEntryType.GLOSSARY_TO.getName()
                + '='
                + Languages.DEFAULT_LANG_CODE);
        langTo = Language.DEFAULT_LANG;
        add(ConfigEntryType.GLOSSARY_TO, lang.getCode());
      }
      testLanguage(internal, langTo);

      // At least one of the two languages should match the lang entry
      if (!langFrom.equals(lang) && !langTo.equals(lang)) {
        log.error(
            "Data error in "
                + internal
                + ". Neither "
                + ConfigEntryType.GLOSSARY_FROM.getName()
                + " or "
                + ConfigEntryType.GLOSSARY_FROM.getName()
                + " match "
                + ConfigEntryType.LANG.getName());
      } else if (!langFrom.equals(lang)) {
        // The LANG field should match the GLOSSARY_FROM field
        /*
         * log.error("Data error in " + internal + ". " +
         * ConfigEntryType.GLOSSARY_FROM.getName() + " ("
         * + langFrom.getCode() + ") does not match " +
         * ConfigEntryType.LANG.getName() + " (" + lang.getCode() +
         * ")");
         */
        lang = langFrom;
        add(ConfigEntryType.LANG, lang.getCode());
      }
    }
  }