- public String format(TemplateContext templateContext, Object data, Map<String, String> parameters) {
- if (parameters.isEmpty()) {
- return l10n.getString(String.valueOf(data));
+ public String format(TemplateContext templateContext, Object data, Map<String, Object> parameters) {
+ List<Object> parameterValues = getParameters(data, parameters);
+ String text = getText(data);
+ if (parameterValues.isEmpty()) {
+ return webInterface.getL10n().getString(text);
+ }
+ return new MessageFormat(webInterface.getL10n().getString(text), new Locale(webInterface.getL10n().getSelectedLanguage().shortCode)).format(parameterValues.toArray());
+ }
+
+ @Nonnull
+ private String getText(Object data) {
+ return (data instanceof L10nText) ? ((L10nText) data).getText() : String.valueOf(data);
+ }
+
+ @Nonnull
+ private List<Object> getParameters(Object data, Map<String, Object> parameters) {
+ if (data instanceof L10nText) {
+ return ((L10nText) data).getParameters();