I want to create a dynamical slider which depends on the page.
security_signin: {
slide1: 'Kitten1',
slide2: 'Kitten2',
},
signup: {
slide1: 'Kitten1',
slide2: 'Kitten2',
slide3: 'Kitten3'
}
The thing is I want to render in my component my slider in function of the number of slide.
So this is something like this:
<slide v-for="(item, index) in $t('message.'+page).length">
<p v-html="$t('message.'+page+'.slide'+index)"></p>
</slide>
However I do not manage to access properly messages this way.
Since $t('message.'+page).length
is giving me back the length of the first slide (7 in the Kitten1 case).
Is there a way to access i18n without recreating an instance of it ?
Okay so it appears that $t()
is always returning a string.
So the solution I found out was to import messages in my components and directly use it from there :
import messages from '../messages'
export default {
props: ['page', 'locale'],
data(){
return {
slides: messages[this.locale].message[this.page]
}
}
}
<slide v-for="(slide, i) in slides">
<p v-html="slide"></p>
<img :src="'/assets/img/slider-bg-'+ i +'.png'" alt="">
</slide>