public Languages getLanguages() { I18nManager i18nMgr = I18nManager.getInstance(); Collection<String> enabledKeysSet = I18nModule.getEnabledLanguageKeys(); Map<String, String> langNames = new HashMap<String, String>(); Map<String, String> langTranslators = new HashMap<String, String>(); String[] enabledKeys = ArrayHelper.toArray(enabledKeysSet); String[] names = new String[enabledKeys.length]; for (int i = 0; i < enabledKeys.length; i++) { String key = enabledKeys[i]; String langName = i18nMgr.getLanguageInEnglish(key, I18nModule.isOverlayEnabled()); langNames.put(key, langName); names[i] = langName; String author = i18nMgr.getLanguageAuthor(key); langTranslators.put(key, author); } ArrayHelper.sort(enabledKeys, names, true, true, true); return new Languages(enabledKeys, langNames, langTranslators); }