将 Vue-i18n 单文件组件语法与根消息相结合
Combining Vue-i18n Single File Component syntax with root messages
我正在试验出色的 vue-i18n plugin for Vue. It has a 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>
国际化定义似乎是 merged together,因此,在组件中,您可以访问父级和子级国际化定义,子级定义覆盖父级定义(例如,如果您在父项和子项中有一个 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>
我正在试验出色的 vue-i18n plugin for Vue. It has a 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>
国际化定义似乎是 merged together,因此,在组件中,您可以访问父级和子级国际化定义,子级定义覆盖父级定义(例如,如果您在父项和子项中有一个 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>