我获取了一些带有自己翻译的条目,但是不知怎么的,我不能很好地使用vue-i18 n(https://vue-i18n.intlify.dev/)。
我目前的翻译是通过json文件加载的,效果很好,但是我找不到任何当前的信息来添加vue-i18 n的动态变量。
所以我写了一个小代码来实现这个。
<template>
<div class="products">
<ul>
<li v-bind:key="value.id" v-for="(value,key) in items">
{{ c(key) }}
</li>
</ul>
</div>
</template>
<script setup>
import { i18n } from '../lang/i18n'
// items remotely fetched
const items = {
title: {
en: 'english title',
de: 'englischer Titel'
},
desc: {
en: 'english description',
de: 'deutsche beschreibung'
},
upcoming: {
en: 'english upcoming'
}
}
const c = (text) => {
return (items[text][i18n.global.locale] ? items[text][i18n.global.locale] : items[text][i18n.global.fallbackLocale])
}
</script>
它工作得很好,但我不想再重新发明轮子,如果它已经存在。像这样的事情可能吗?
1条答案
按热度按时间kb5ga3dv1#
将const
c = (text)
更改为计算属性,如下所示:这个应该可以了。