我正在尝试使用Vue优秀的vue-i18n插件。它有一个neat feature,允许我将翻译直接嵌入到需要它们的模板中。但是,如果我使用它们,我将无法访问根转换节点。是支持这种模式还是我做错了?
main.js
import VueI18n from 'vue-i18n';
Vue.use(VueI18n);
const i18n = new VueI18n({
locale: 'en',
messages: {
en: {
'company-name': 'billy-bob\'s fine steaks.'
}
}
});
Sample.vue
<i18n>
{
"en": {
"title": "@:company-name - yeee hawwww!!!"
}
}
</i18n>
<template>
<div id="app" class="container">
<site-header :title="$t('title')"></site-header>
</div>
</template>
答案 0 :(得分:2)
似乎i18n定义为merged together,因此,在组件中,您可以访问父级和子级i18n定义,子级定义会覆盖父级,其中存在任何重叠(例如,如果您在父母和子女中有一个title
密钥,则会使用该子密钥。
但是,您明确使用的语法不起作用。在这种情况下,我想我会定义一个计算结合两个翻译的值并使用它。
computed:{
title(){
return this.$t("company-name") + this.$t("title")
}
}
然后只使用模板中的计算值。
<template>
<div id="app" class="container">
<site-header :title="title"></site-header>
</div>
</template>