diff --git a/jte-kotlin/src/main/java/gg/jte/compiler/kotlin/KotlinCodeGenerator.java b/jte-kotlin/src/main/java/gg/jte/compiler/kotlin/KotlinCodeGenerator.java
index cdfe56ba..bdf2db81 100644
--- a/jte-kotlin/src/main/java/gg/jte/compiler/kotlin/KotlinCodeGenerator.java
+++ b/jte-kotlin/src/main/java/gg/jte/compiler/kotlin/KotlinCodeGenerator.java
@@ -318,6 +318,9 @@ public void onHtmlTagAttributeCodePart(int depth, String codePart, String tagNam
kotlinCode.append("jteOutput.setContext(\"").append(tagName).append("\", \"").append(attributeName).append("\")\n");
writeCodePart(depth, codePart);
+
+ writeIndentation(depth + 1);
+ kotlinCode.append("jteOutput.setContext(\"").append(tagName).append("\", null)\n");
}
@Override
@@ -420,8 +423,6 @@ public void onHtmlAttributeOutput(int depth, TemplateParser.HtmlTag currentHtmlT
onConditionStart(depth, "gg.jte.runtime.TemplateUtils.isAttributeRendered(" + javaExpression + ")");
onTextPart(depth + 1, " " + htmlAttribute.name + "=" + htmlAttribute.quotes);
onHtmlTagAttributeCodePart(depth + 1, javaExpression, currentHtmlTag.name, htmlAttribute.name);
- writeIndentation(depth + 1);
- kotlinCode.append("jteOutput.setContext(\"").append(currentHtmlTag.name).append("\", null)\n");
onTextPart(depth + 1, "" + htmlAttribute.quotes);
}
onConditionEnd(depth);
diff --git a/jte-kotlin/src/test/java/gg/jte/kotlin/TemplateEngine_HtmlOutputEscapingTest.java b/jte-kotlin/src/test/java/gg/jte/kotlin/TemplateEngine_HtmlOutputEscapingTest.java
index 2795f030..a8472726 100644
--- a/jte-kotlin/src/test/java/gg/jte/kotlin/TemplateEngine_HtmlOutputEscapingTest.java
+++ b/jte-kotlin/src/test/java/gg/jte/kotlin/TemplateEngine_HtmlOutputEscapingTest.java
@@ -1372,6 +1372,16 @@ void localization_contentParams() {
assertThat(output.toString()).isEqualTo("Hello? Click here");
}
+ @Test
+ void localization_contentParams2() {
+ codeResolver.givenCode("template.kte", "@param localizer:gg.jte.kotlin.TemplateEngine_HtmlOutputEscapingTest.MyLocalizer\n" +
+ "${localizer.localize(\"link\", @``, @``)}");
+
+ templateEngine.render("template.kte", TemplateUtils.toMap("localizer", localizer), output);
+
+ assertThat(output.toString()).isEqualTo("Hello? Click here");
+ }
+
@SuppressWarnings("unused")
public static class MyLocalizer implements LocalizationSupport {
Map resources = TemplateUtils.toMap(
diff --git a/jte/src/main/java/gg/jte/compiler/java/JavaCodeGenerator.java b/jte/src/main/java/gg/jte/compiler/java/JavaCodeGenerator.java
index b55f2b43..e43aa973 100644
--- a/jte/src/main/java/gg/jte/compiler/java/JavaCodeGenerator.java
+++ b/jte/src/main/java/gg/jte/compiler/java/JavaCodeGenerator.java
@@ -311,6 +311,9 @@ public void onHtmlTagAttributeCodePart(int depth, String codePart, String tagNam
javaCode.append("jteOutput.setContext(\"").append(tagName).append("\", \"").append(attributeName).append("\");\n");
writeCodePart(depth, codePart);
+
+ writeIndentation(depth + 1);
+ javaCode.append("jteOutput.setContext(\"").append(tagName).append("\", null);\n");
}
@Override
@@ -413,8 +416,6 @@ public void onHtmlAttributeOutput(int depth, TemplateParser.HtmlTag currentHtmlT
onConditionStart(depth, "gg.jte.runtime.TemplateUtils.isAttributeRendered(" + javaExpression + ")");
onTextPart(depth + 1, " " + htmlAttribute.name + "=" + htmlAttribute.quotes);
onHtmlTagAttributeCodePart(depth + 1, javaExpression, currentHtmlTag.name, htmlAttribute.name);
- writeIndentation(depth + 1);
- javaCode.append("jteOutput.setContext(\"").append(currentHtmlTag.name).append("\", null);\n");
onTextPart(depth + 1, "" + htmlAttribute.quotes);
}
onConditionEnd(depth);
diff --git a/jte/src/test/java/gg/jte/TemplateEngine_HtmlOutputEscapingTest.java b/jte/src/test/java/gg/jte/TemplateEngine_HtmlOutputEscapingTest.java
index a1ac0c17..3c19c5b4 100644
--- a/jte/src/test/java/gg/jte/TemplateEngine_HtmlOutputEscapingTest.java
+++ b/jte/src/test/java/gg/jte/TemplateEngine_HtmlOutputEscapingTest.java
@@ -1527,6 +1527,16 @@ void localization_contentParams() {
assertThat(output.toString()).isEqualTo("Hello? Click here");
}
+ @Test
+ void localization_contentParams2() {
+ codeResolver.givenCode("template.jte", "@param gg.jte.TemplateEngine_HtmlOutputEscapingTest.MyLocalizer localizer\n" +
+ "${localizer.localize(\"link\", @``, @``)}");
+
+ templateEngine.render("template.jte", TemplateUtils.toMap("localizer", localizer), output);
+
+ assertThat(output.toString()).isEqualTo("Hello? Click here");
+ }
+
@SuppressWarnings("unused")
public static class MyLocalizer implements LocalizationSupport {
Map resources = TemplateUtils.toMap(