diff --git a/packages/canvas/src/components/render/render.js b/packages/canvas/src/components/render/render.js index f6d36f9ba..42a7a69e7 100644 --- a/packages/canvas/src/components/render/render.js +++ b/packages/canvas/src/components/render/render.js @@ -160,7 +160,7 @@ const parseI18n = (i18n, scope, ctx) => { return parseExpression( { type: 'JSExpression', - value: `this.i18n('${i18n.key}')` + value: `this.i18n('${i18n.key}', ${JSON.stringify(i18n.params)})` }, scope, { i18n: i18nHost.global.t, ...ctx } @@ -169,6 +169,7 @@ const parseI18n = (i18n, scope, ctx) => { const renderDefault = (children, scope, parent) => children.map?.((child) => + // eslint-disable-next-line no-use-before-define h(renderer, { schema: child, scope, diff --git a/packages/common/component/BindI18n.vue b/packages/common/component/BindI18n.vue index b2d04a58f..9a93a2494 100644 --- a/packages/common/component/BindI18n.vue +++ b/packages/common/component/BindI18n.vue @@ -96,7 +96,7 @@ export default { const params = [] const data = props?.data?.params || {} - curValue.replace(/\$\{(.+?)\}/g, (substr, key) => { + curValue.replace(/\{(.+?)\}/g, (substr, key) => { key && params.push({ name: key, value: data[key] || '' }) }) paramsForm.value = params diff --git a/packages/vue-generator/src/generator/page.js b/packages/vue-generator/src/generator/page.js index d331e20a8..2bafcc504 100644 --- a/packages/vue-generator/src/generator/page.js +++ b/packages/vue-generator/src/generator/page.js @@ -162,7 +162,12 @@ function handleBinding(props, attrsArr, description, state) { } if (propType === 'i18n') { - return attrsArr.push(`:${key}="t('${item.key}')"`) + const tArguments = [`'${item.key}'`] + const i18nParams = JSON.stringify(item.params)?.replace(/"/g, "'") + + i18nParams && tArguments.push(i18nParams) + + return attrsArr.push(`:${key}="t(${tArguments.join(',')})"`) } }) }