в моем проекте у меня есть 2 properties files
, которые используются для интернационализации.Я использую ResourceBundle
с параметром Locale
и храню ключи из файлов свойств в коллекции.К сожалению, в коллекции хранятся комбинированные ключи из обоих файлов.Я просто хочу ключи из одного файла в зависимости от локали.В моем случае локаль "bg_BG".Файлы свойств:
time_intervals.properties
time_intervals_bg.properties
И вот как я их читаю:
public List<SelectItem> getTimeSpentList() {
timeSpentList = new ArrayList<SelectItem>();
FacesContext context = FacesContext.getCurrentInstance();
ResourceBundle bundle = ResourceBundle.getBundle("properties.time_intervals", context.getViewRoot().getLocale());
Enumeration<String> time_interval_keys = bundle.getKeys();
List<String> sortedKeys = new ArrayList<String>();
while(time_interval_keys.hasMoreElements()) {
String key = time_interval_keys.nextElement();
sortedKeys.add(key);
}
Collections.sort(sortedKeys, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if (o1.charAt(1) != ' ') {
return -1;
} else if (o2.charAt(1) != ' ') {
return 1;
}
return o1.compareTo(o2);
}
});
for (String key : sortedKeys) {
timeSpentList.add(new SelectItem(key));
}
if (timeSpentList == null || timeSpentList.isEmpty()) {
timeSpentList.add(new SelectItem(""));
return timeSpentList;
}
return timeSpentList;
}
Проблема здесь в том, что в Enumeration<String> time_interval_keys
я получаю комбинированные ключи из обоих файлов свойств после вызова bundle.getKeys()
, но мне нужны ТОЛЬКО значения из одного из них.Пожалуйста, помогите.
PS Пожалуйста, дайте мне знать, если что-то не понятно с моими объяснениями и с кодом.