feat(ivy): add AttributeMarker.I18n
for i18n attributes (#30402)
`i18nAttributes` instructions always occur after the element instruction. This means that we need to treat `i18n-` attributes differently. By defining a specific `AttributeMarker` we can ensure that we won't trigger directive inputs with untranslated attribute values. FW-1332 #resolve PR Close #30402
This commit is contained in:

committed by
Matias Niemelä

parent
91699259b2
commit
53c6b78c51
@ -197,7 +197,7 @@ describe('i18n support in the view compiler', () => {
|
||||
else {
|
||||
$I18N_0$ = $r3$.ɵɵi18nLocalize("Content A");
|
||||
}
|
||||
const $_c2$ = [${AttributeMarker.Bindings}, "title"];
|
||||
const $_c2$ = [${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_3$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -330,7 +330,7 @@ describe('i18n support in the view compiler', () => {
|
||||
`;
|
||||
|
||||
const output = `
|
||||
const $_c0$ = ["id", "static", ${AttributeMarker.Bindings}, "title"];
|
||||
const $_c0$ = ["id", "static", ${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_1$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -371,7 +371,7 @@ describe('i18n support in the view compiler', () => {
|
||||
`;
|
||||
|
||||
const output = String.raw `
|
||||
const $_c0$ = ["id", "dynamic-1", ${AttributeMarker.Bindings}, "aria-roledescription", "title", "aria-label"];
|
||||
const $_c0$ = ["id", "dynamic-1", ${AttributeMarker.I18n}, "aria-roledescription", "title", "aria-label"];
|
||||
var $I18N_1$;
|
||||
if (ngI18nClosureMode) {
|
||||
const $MSG_EXTERNAL_5526535577705876535$$APP_SPEC_TS_1$ = goog.getMsg("static text");
|
||||
@ -417,7 +417,7 @@ describe('i18n support in the view compiler', () => {
|
||||
"title", $I18N_2$,
|
||||
"aria-label", $I18N_3$
|
||||
];
|
||||
const $_c2$ = ["id", "dynamic-2", ${AttributeMarker.Bindings}, "title", "aria-roledescription"];
|
||||
const $_c2$ = ["id", "dynamic-2", ${AttributeMarker.I18n}, "title", "aria-roledescription"];
|
||||
var $I18N_6$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -487,7 +487,7 @@ describe('i18n support in the view compiler', () => {
|
||||
`;
|
||||
|
||||
const output = String.raw `
|
||||
const $_c0$ = [${AttributeMarker.Bindings}, "title"];
|
||||
const $_c0$ = [${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_1$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -532,7 +532,7 @@ describe('i18n support in the view compiler', () => {
|
||||
|
||||
const output = String.raw `
|
||||
const $_c0$ = [${AttributeMarker.Template}, "ngFor", "ngForOf"];
|
||||
const $_c1$ = [${AttributeMarker.Bindings}, "title"];
|
||||
const $_c1$ = [${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_1$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -599,7 +599,7 @@ describe('i18n support in the view compiler', () => {
|
||||
const output = String.raw `
|
||||
const $_c0$ = [
|
||||
"id", "dynamic-1",
|
||||
${AttributeMarker.Bindings}, "aria-roledescription", "title", "aria-label"
|
||||
${AttributeMarker.I18n}, "aria-roledescription", "title", "aria-label"
|
||||
];
|
||||
var $I18N_1$;
|
||||
if (ngI18nClosureMode) {
|
||||
@ -646,7 +646,7 @@ describe('i18n support in the view compiler', () => {
|
||||
"title", $I18N_2$,
|
||||
"aria-label", $I18N_3$
|
||||
];
|
||||
const $_c2$ = ["id", "dynamic-2", ${AttributeMarker.Bindings}, "title", "aria-roledescription"];
|
||||
const $_c2$ = ["id", "dynamic-2", ${AttributeMarker.I18n}, "title", "aria-roledescription"];
|
||||
var $I18N_6$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -719,7 +719,7 @@ describe('i18n support in the view compiler', () => {
|
||||
|
||||
const output = String.raw `
|
||||
const $_c0$ = [${AttributeMarker.Template}, "ngFor", "ngForOf"];
|
||||
const $_c1$ = [${AttributeMarker.Bindings}, "title"];
|
||||
const $_c1$ = [${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_2$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -776,7 +776,7 @@ describe('i18n support in the view compiler', () => {
|
||||
`;
|
||||
|
||||
const output = String.raw `
|
||||
const $_c0$ = [${AttributeMarker.Bindings}, "title"];
|
||||
const $_c0$ = [${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_0$;
|
||||
if (ngI18nClosureMode) {
|
||||
/**
|
||||
@ -1256,7 +1256,7 @@ describe('i18n support in the view compiler', () => {
|
||||
`;
|
||||
|
||||
const output = String.raw `
|
||||
const $_c1$ = [${AttributeMarker.Bindings}, "title"];
|
||||
const $_c1$ = [${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_2$;
|
||||
if (ngI18nClosureMode) {
|
||||
const $MSG_EXTERNAL_4782264005467235841$$APP_SPEC_TS_3$ = goog.getMsg("Span title {$interpolation} and {$interpolation_1}", {
|
||||
@ -1448,7 +1448,7 @@ describe('i18n support in the view compiler', () => {
|
||||
$r3$.ɵɵelement(0, "img", $_c0$);
|
||||
}
|
||||
}
|
||||
const $_c3$ = ["src", "logo.png", ${AttributeMarker.Bindings}, "title"];
|
||||
const $_c3$ = ["src", "logo.png", ${AttributeMarker.I18n}, "title"];
|
||||
var $I18N_2$;
|
||||
if (ngI18nClosureMode) {
|
||||
const $MSG_EXTERNAL_2367729185105559721$$APP_SPEC_TS__2$ = goog.getMsg("App logo #{$interpolation}", {
|
||||
|
Reference in New Issue
Block a user