X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2FL10nFilter.java;h=b547a536afda9c39a5486970c4e8cbd7da6a8f6b;hp=fa7385c267c77ddcf5545245eb68c995a87fbc7d;hb=419098bcd6215125408b29e60bd888e60979d37b;hpb=c5e641893a2656ebf2c2c8c369fe75eaf3061b52 diff --git a/src/main/java/net/pterodactylus/sone/freenet/L10nFilter.java b/src/main/java/net/pterodactylus/sone/freenet/L10nFilter.java index fa7385c..b547a53 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/L10nFilter.java +++ b/src/main/java/net/pterodactylus/sone/freenet/L10nFilter.java @@ -1,5 +1,5 @@ /* - * Sone - L10nFilter.java - Copyright © 2010 David Roden + * Sone - L10nFilter.java - Copyright © 2010–2015 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,11 +17,15 @@ package net.pterodactylus.sone.freenet; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; import java.util.Map; +import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.util.template.Filter; import net.pterodactylus.util.template.TemplateContext; -import freenet.l10n.BaseL10n; /** * {@link Filter} implementation replaces {@link String} values with their @@ -31,25 +35,35 @@ import freenet.l10n.BaseL10n; */ public class L10nFilter implements Filter { - /** The l10n handler. */ - private final BaseL10n l10n; + /** The web interface. */ + private final WebInterface webInterface; /** * Creates a new L10n filter. * - * @param l10n - * The l10n handler + * @param webInterface + * The Sone web interface */ - public L10nFilter(BaseL10n l10n) { - this.l10n = l10n; + public L10nFilter(WebInterface webInterface) { + this.webInterface = webInterface; } /** * {@inheritDoc} */ @Override - public String format(TemplateContext templateContext, Object data, Map parameters) { - return l10n.getString(String.valueOf(data)); + public String format(TemplateContext templateContext, Object data, Map parameters) { + if (parameters.isEmpty()) { + return webInterface.getL10n().getString(String.valueOf(data)); + } + List parameterValues = new ArrayList(); + int parameterIndex = 0; + while (parameters.containsKey(String.valueOf(parameterIndex))) { + Object value = parameters.get(String.valueOf(parameterIndex)); + parameterValues.add(value); + ++parameterIndex; + } + return new MessageFormat(webInterface.getL10n().getString(String.valueOf(data)), new Locale(webInterface.getL10n().getSelectedLanguage().shortCode)).format(parameterValues.toArray()); } }