@Cacheable(value = "locale-messages", key = "#locale.toString().concat('-countries-map')")
public Map<String, String> getCountries(Locale locale) {
ResourceBundle resource = ResourceBundle.getBundle("i18n/messages", locale, new UTF8Control());
Map<String, String> dbCountries = countryManager.retrieveCountriesAndIsoCodes();
Map<String, String> countries = new LinkedHashMap<String, String>();
for (String key : dbCountries.keySet()) {
countries.put(key, resource.getString(buildInternationalizationKey(CountryIsoEntity.class, key)));
}
FunctionsOverCollections.sortMapsByValues(countries);
return countries;
}