在 Vuejs 中的组件上显示翻译
Display translation on a component in Vuejs
我想显示组件标题的翻译。
这是 HTML 代码:
<user-card
:totalUser="totalUsers"
color="primary"
icon="UserIcon"
user-title="Total users"
/>
在我的 user-card
组件上我有这个:
<b-card class="text-center">
<b-avatar
:variant="`light-${color}`"
class="mb-1"
size="45"
>
<feather-icon
:icon="icon"
size="21"
/>
</b-avatar>
<div class="truncate">
<h2 class="mb-25 font-weight-bolder">
{{ totalUser}}
</h2>
<span>{{ user-title }}</span>
</div>
</b-card>
为了使用翻译,我有这样的语法,我从 JSON 文件中获取翻译的术语:
{{$t("Total users")}}
如何在 user-title
上实现它?
只需使用 v-bind
并将表达式直接传递给 user-card
组件:
<user-card
...
:user-title="$t('Total users')"
/>
你实际上已经在多个地方使用了这个语法,这个指令只是告诉 Vue “动态绑定一个或多个属性,或者一个组件 prop 到一个表达式”,这正是你在这里寻找的.
这会将 $t('Total users')
作为表达式求值,然后将结果作为 prop 传递给您的组件。
看看这个,我已经尝试在代码沙箱中复制您的场景。
你做错的是 $t 是一个接受变量名的函数,其中有一个实际的消息,首先你必须像我一样为多种语言定义一个变量,例如 totalUserTitle: 'Total users'在 index.js 中,然后您可以将其用作 $t(totalUserTitle)
。
我想显示组件标题的翻译。 这是 HTML 代码:
<user-card
:totalUser="totalUsers"
color="primary"
icon="UserIcon"
user-title="Total users"
/>
在我的 user-card
组件上我有这个:
<b-card class="text-center">
<b-avatar
:variant="`light-${color}`"
class="mb-1"
size="45"
>
<feather-icon
:icon="icon"
size="21"
/>
</b-avatar>
<div class="truncate">
<h2 class="mb-25 font-weight-bolder">
{{ totalUser}}
</h2>
<span>{{ user-title }}</span>
</div>
</b-card>
为了使用翻译,我有这样的语法,我从 JSON 文件中获取翻译的术语:
{{$t("Total users")}}
如何在 user-title
上实现它?
只需使用 v-bind
并将表达式直接传递给 user-card
组件:
<user-card
...
:user-title="$t('Total users')"
/>
你实际上已经在多个地方使用了这个语法,这个指令只是告诉 Vue “动态绑定一个或多个属性,或者一个组件 prop 到一个表达式”,这正是你在这里寻找的.
这会将 $t('Total users')
作为表达式求值,然后将结果作为 prop 传递给您的组件。
看看这个,我已经尝试在代码沙箱中复制您的场景。
你做错的是 $t 是一个接受变量名的函数,其中有一个实际的消息,首先你必须像我一样为多种语言定义一个变量,例如 totalUserTitle: 'Total users'在 index.js 中,然后您可以将其用作 $t(totalUserTitle)
。