package org.apache.examples.struts.actions.data; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ModelDriven; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.struts2.rest.RestActionSupport; import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; import java.util.stream.Collectors; public class LanguageController extends RestActionSupport implements ModelDriven<Map<String, String>> { private static final Logger log = LogManager.getLogger(LanguageController.class); private Map<String, String> model; public String index() throws Exception { Locale locale = ActionContext.getContext().getLocale(); log.debug("Get texts resources for locale: {}", locale); ResourceBundle bundle = getTexts("frontend"); this.model = bundle.keySet() .stream() .collect(Collectors.toMap( key -> key, bundle::getString)); return Action.SUCCESS; } @Override public Map<String, String> getModel() { return model; } }