package org.joget.commons.util; import org.joget.commons.spring.model.ResourceBundleMessage; import org.joget.commons.spring.model.ResourceBundleMessageDao; import java.util.Locale; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.support.ResourceBundleMessageSource; public class DatabaseResourceBundleMessageSource extends ResourceBundleMessageSource { private ResourceBundleMessageDao resourceBundleMessageDao; public ResourceBundleMessageDao getResourceBundleMessageDao() { return resourceBundleMessageDao; } public void setResourceBundleMessageDao(ResourceBundleMessageDao resourceBundleMessageDao) { this.resourceBundleMessageDao = resourceBundleMessageDao; } @Override protected String resolveCodeWithoutArguments(String code, Locale locale) { String localeToUse = locale.toString(); ResourceBundleMessage resourceBundleMessage = null; try { resourceBundleMessage = resourceBundleMessageDao.getMessage(code, localeToUse); } catch (Exception e) { //LogUtil.error(getClass().getName(), null, "Error retrieving resource bundle message for " + code); } if (resourceBundleMessage != null) { return resourceBundleMessage.getMessage(); } else { return super.resolveCodeWithoutArguments(code, locale); } } }