Ich bin dabei, eine App zu konvertieren, um i18n / l10n auf all ihren Seiten zu verwenden. Ich bin sehr glücklich mit Wickets Unterstützung dafür, und es läuft bisher sehr gut. Der eine schwierige Teil, auf den ich gestoßen bin, ist der folgende:
Wir haben eine Textdatei, die als HTML-Vorlage zum Senden von E-Mails verwendet wird, wenn Benutzer eine bestimmte Operation auf der Site ausführen. Wenn der Benutzer auf einen bestimmten Link klickt, lese ich diese Vorlage manuell ein, mache einige Textersetzungen wie "Dear $USERNAME"
und sende das Ergebnis als HTML-E-Mail an den Benutzer.
Um die etwa 10 Sprachen zu unterstützen, auf die wir abzielen, muss ich entweder 10 Kopien dieser Vorlagendatei erstellen oder eine Möglichkeit finden, diese "Seite" mit der integrierten i18n-Unterstützung von Wicket zu rendern. Nimm das Ergebnis als String und sende es dann.
Daher meine Frage : Wie kann ich eine Wicket-Seite programmatisch "rendern" und das Ergebnis als String erhalten?
Ich würde es vorziehen, Hacks wie HttpClient zu vermeiden, wenn überhaupt möglich; HttpClient wird nicht das Gebietsschema des Benutzers haben, wird nicht automatisch als Benutzer usw. angemeldet, so dass das für mich keine gute Lösung zu sein scheint.
Zwei Artikel dazu:
Render a Wicket-Seite zu einer Zeichenfolge für HTML-E-Mails
Rendering Panel zu einer Zeichenfolge
Gegenwärtig ist der einzige andere Ansatz, WicketTester zu verwenden das, aber ich erinnere mich nicht Details, wie man das macht.
Für neuere Wicket-Versionen: 6.7.0 kam mit einem neu ComponentRenderer genau für dieser Zweck!
Tags und Links java internationalization wicket