kazupon / vue-i18n

:globe_with_meridians: Internationalization plugin for Vue.js
https://kazupon.github.io/vue-i18n/
MIT License
7.24k stars 860 forks source link

How to use component interpolation for array (multiple) translations #1681

Open dword-design opened 10 months ago

dword-design commented 10 months ago

Clear and concise description of the problem

I have a list of paragraphs that I want to translate and render each one with a <p>. But some have a link in it that I want to inject via component interpolation like this:

// en.js
{
  paragraphs: [
    'foo bar {link}',
    'another paragraph',
  ],
}
// index.vue
<!-- how to render this for each paragraph -->
<i18n-t tag="p" keypath="paragraphs">
  <template #link><a href="link" /></template>
</i18n-t>

It is possible to get the array of translations via $tm, but how to interpolate each translation?

Suggested solution

Maybe there is already a solution that I don't know of. Can I maybe iterate over $tm and interpolate each translated string individually?

Alternative

No response

Additional context

No response

Validations