class ShortDescriptionProvider {
  private final static Map<Language, Map<String, String>> descriptions = new ConcurrentHashMap<>();

  @Nullable
  public String getShortDescription(String word, Language lang) {
    return getAllDescriptions(lang).get(word);
  }

  @VisibleForTesting
  static Map<String, String> getAllDescriptions(Language lang) {
    return descriptions.computeIfAbsent(lang, ShortDescriptionProvider::init);
  }

  private static Map<String, String> init(Language lang) {<FILL_FUNCTION_BODY>}

}

    ResourceDataBroker dataBroker = JLanguageTool.getDataBroker();
    String path = "/" + lang.getShortCode() + "/word_definitions.txt";
    if (!dataBroker.resourceExists(path)) {
      return Collections.emptyMap();
    }
    Map<String, String> wordToDef = new HashMap<>();
    List<String> lines = dataBroker.getFromResourceDirAsLines(path);
    for (String line : lines) {
      if (line.startsWith("#") || line.trim().isEmpty()) {
        continue;
      }
      String[] parts = line.split("\t");
      if (parts.length != 2) {
        throw new RuntimeException("Format in " + path + " not expected, expected 2 tab-separated columns: '" + line + "'");
      }
      wordToDef.put(parts[0], parts[1]);
    }
    return wordToDef;
  
<no_super_class>