diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts
index 760b8534..12fb592b 100644
--- a/src/compiler/parser.ts
+++ b/src/compiler/parser.ts
@@ -253,11 +253,11 @@ function parseNode(node: Node, ctx: ParsingContext): AST | null {
parseTPortal(node, ctx) ||
parseTCall(node, ctx) ||
parseTCallBlock(node, ctx) ||
+ parseTTranslation(node, ctx) ||
+ parseTTranslationContext(node, ctx) ||
parseTEscNode(node, ctx) ||
parseTOutNode(node, ctx) ||
parseTKey(node, ctx) ||
- parseTTranslation(node, ctx) ||
- parseTTranslationContext(node, ctx) ||
parseTSlot(node, ctx) ||
parseComponent(node, ctx) ||
parseDOMNode(node, ctx) ||
diff --git a/tests/compiler/parser.test.ts b/tests/compiler/parser.test.ts
index de3db0bf..a7c9d505 100644
--- a/tests/compiler/parser.test.ts
+++ b/tests/compiler/parser.test.ts
@@ -1971,6 +1971,54 @@ describe("qweb parser", () => {
});
});
+ test('t-translation="off": interaction with t-esc', async () => {
+ expect(parse(``)).toEqual({
+ type: ASTType.TTranslation,
+ content: {
+ attrs: null,
+ attrsTranslationCtx: null,
+ content: [
+ {
+ defaultValue: "",
+ expr: "a",
+ type: ASTType.TEsc,
+ },
+ ],
+ dynamicTag: null,
+ model: null,
+ ns: null,
+ on: null,
+ ref: null,
+ tag: "span",
+ type: ASTType.DomNode,
+ },
+ });
+ });
+
+ test('t-translation="off": interaction with t-out', async () => {
+ expect(parse(``)).toEqual({
+ type: ASTType.TTranslation,
+ content: {
+ attrs: null,
+ attrsTranslationCtx: null,
+ content: [
+ {
+ body: null,
+ expr: "a",
+ type: ASTType.TOut,
+ },
+ ],
+ dynamicTag: null,
+ model: null,
+ ns: null,
+ on: null,
+ ref: null,
+ tag: "span",
+ type: ASTType.DomNode,
+ },
+ });
+ });
+
// ---------------------------------------------------------------------------
// t-translation-context
// ---------------------------------------------------------------------------
@@ -2008,6 +2056,56 @@ describe("qweb parser", () => {
});
});
+ test("t-translation-context: interaction with t-esc", async () => {
+ expect(parse(``)).toEqual({
+ type: ASTType.TTranslationContext,
+ content: {
+ attrs: null,
+ attrsTranslationCtx: null,
+ content: [
+ {
+ defaultValue: "",
+ expr: "a",
+ type: ASTType.TEsc,
+ },
+ ],
+ dynamicTag: null,
+ model: null,
+ ns: null,
+ on: null,
+ ref: null,
+ tag: "span",
+ type: ASTType.DomNode,
+ },
+ translationCtx: "fr",
+ });
+ });
+
+ test("t-translation-context: interaction with t-out", async () => {
+ expect(parse(``)).toEqual({
+ type: ASTType.TTranslationContext,
+ content: {
+ attrs: null,
+ attrsTranslationCtx: null,
+ content: [
+ {
+ body: null,
+ expr: "a",
+ type: ASTType.TOut,
+ },
+ ],
+ dynamicTag: null,
+ model: null,
+ ns: null,
+ on: null,
+ ref: null,
+ tag: "span",
+ type: ASTType.DomNode,
+ },
+ translationCtx: "fr",
+ });
+ });
+
// ---------------------------------------------------------------------------
// t-translation-context-attr
// ---------------------------------------------------------------------------