vue.js - 如何将我自己的翻译添加到我的 vuetify 2.x 网络应用程序中?
问题描述
我目前正在使用 vuetify 2.x 和 vue-i18n 编写我的第一个 Web 应用程序。不幸的是,我无法让 i18n 为我自己的翻译工作。
我有一个包含以下条目的菜单
<v-menu bottom left offset-y transition="slide-y-transition">
<template v-slot:activator="{ on }">
<v-btn icon v-on="on">
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</template>
<v-list>
<v-list-item @click="showAllItems">
<v-list-item-title>
{{ $vuetify.lang.t("cancelFilters") }}
</v-list-item-title>
</v-list-item>
<v-list-item @click="showNonZeroItems">
<v-list-item-title>
{{ $vuetify.lang.t("maskZero") }}
</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
但是显示的是键而不是英语或其他语言。我将英语设置为备用语言。
该功能存在并且正在运行,但未考虑我的翻译。
这是 的内容src/locales/en.json
。我不确定键是否可能包含空格。
{
"search": "Search",
"cancelFilters": "Cancel filters",
"maskZero": "Mask zero counts",
"maskUnchecked": "Mask unchecked",
"maskChecked": "Mask checked",
"sharingCode": "Sharing code",
"preferences": "Preferences",
"addList": "Add list",
"disconnect": "Disconnect",
"sponsoringLink": "Sponsoring link"
}
我看到locales目录下的json文件都加载到了src/i18n.js
文件中。
获得我的翻译需要哪些步骤?
如何更改当前语言?
解决方案:我发现了如何使用 en.json 中定义的我自己的翻译。只需替换$vuetify.lang.t
为$i18n.t
. 就如此容易。仍然需要找到如何更改当前语言。
解决方案
$vuetify.lang
只是一个轻量级的实现,旨在供 Vuetify 的组件在内部使用来翻译像 v-select's 这样的字符串no-data-text
。这些 props 可以采用纯字符串 ( no-data-text="There's nothing here"
) 以及翻译键,因此键需要以$vuetify
( no-data-text="$vuetify.noDataText"
) 为前缀。
显然这不是很有用,也没有给你很大的灵活性,所以为了翻译你网站的其余部分,我们建议使用vue-i18n代替。我们还展示了如何在 vue-i18n json 文件中存储自定义的 vuetify 翻译:https ://vuetifyjs.com/en/features/internationalization/#vue-i18n
推荐阅读
- javascript - 不和谐音乐机器人问题
- iphone - iOS12 中的 EKCalendar 标题为空白
- python - Pandas - 将多个分类列转换为同一组列
- cuda - 在 CUDA 中每个网格(x 维度)启动超过 65536 个块
- git - GitHub 字体对齐问题:源代码查看器中的多余空格
- sql - 如何为 ColdFusion FindNoCase If 条件编写 SQL 查询?
- c# - PDFsharp PdfDocument.Save 导致任何其他保存时出现空白页
- octobercms - 如何更改十月 CMS 中后端列表行的背景颜色?
- c# - GetDrawable 已过时
- r - 在 dplyr 的过滤命令中使用 contains() 时出错