X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2Ftemplate%2FSprintfCommand.java;h=e2ff0ba6ce6395c4bfd3e3e8c587bc3c572c13fa;hb=8d98e8c550a5fc426d7efbd57436dcb61bd41243;hp=f0a3f35917368cc05e1c929cda9c549050a11eea;hpb=081aaab69d87705ed2aec541fb936df7850bf09b;p=gigi.git diff --git a/src/org/cacert/gigi/output/template/SprintfCommand.java b/src/org/cacert/gigi/output/template/SprintfCommand.java index f0a3f359..e2ff0ba6 100644 --- a/src/org/cacert/gigi/output/template/SprintfCommand.java +++ b/src/org/cacert/gigi/output/template/SprintfCommand.java @@ -1,33 +1,36 @@ package org.cacert.gigi.output.template; import java.io.PrintWriter; -import java.util.LinkedList; +import java.util.List; import java.util.Map; -import org.cacert.gigi.Language; -import org.cacert.gigi.output.Outputable; +import org.cacert.gigi.localisation.Language; import org.cacert.gigi.util.HTMLEncoder; public final class SprintfCommand implements Outputable { private final String text; - private final LinkedList store; + private final String[] store; - public SprintfCommand(String text, LinkedList store) { + public SprintfCommand(String text, List store) { this.text = text; - this.store = store; + this.store = store.toArray(new String[store.size()]); } @Override public void output(PrintWriter out, Language l, Map vars) { - String[] parts = l.getTranslation(text).split("%s"); - String[] myvars = store.toArray(new String[store.size()]); + String[] parts = l.getTranslation(text).split("%s", -1); + String[] myvars = store; out.print(HTMLEncoder.encodeHTML(parts[0])); for (int j = 1; j < parts.length; j++) { String var = myvars[j - 1]; if (var.startsWith("$!")) { Template.outputVar(out, l, vars, myvars[j - 1].substring(2), true); + } else if (var.startsWith("!\"")) { + out.print(var.substring(2)); + } else if (var.startsWith("\"")) { + out.print(HTMLEncoder.encodeHTML(var.substring(1))); } else { Template.outputVar(out, l, vars, myvars[j - 1].substring(1), false); }