code: public static Language getLanguageForShortCode(String langCode, List<String> noopLanguageCodes) {
      Language language = getLanguageForShortCodeOrNull(langCode);
      if (language == null) {
        if (noopLanguageCodes.contains(langCode)) {
          return NOOP_LANGUAGE;
        } else {
          List<String> codes = new ArrayList<>();
          for (Language realLanguage : getStaticAndDynamicLanguages()) {
            codes.add(realLanguage.getShortCodeWithCountryAndVariant());
          }
          Collections.sort(codes);
          throw new IllegalArgumentException("'" + langCode + "' is not a language code known to LanguageTool." +
                  " Supported language codes are: " + String.join(", ", codes) + ". The list of languages is read from " + PROPERTIES_PATH +
                  " in the Java classpath. See http://wiki.languagetool.org/java-api for details.");
        }
      }
      return language;
    }
docs: Get the Language object for the given language code.
  @param langCode e.g. <code>en</code> or <code>en-US</code>
  @param noopLanguageCodes list of languages that can be detected but that will not actually find any errors
  (can be used so non-supported languages are not detected as some other language)
  @throws IllegalArgumentException if the language is not supported or if the language code is invalid
  @since 4.4