javascript - 使用 Vue-i18n 翻译来自脚本的文本
问题描述
我安装了 vue-i18n 插件并按照本教程中提到的步骤进行操作。我现在将所有可替换的标签从英语更改为我拥有本地化文件的所有语言。我的问题是我想翻译来自页面 JavaScript 部分的消息,例如错误文本或弹出的通知......等。
例如,我的字段中有占位符,我想翻译它们,所以我的模板如下所示:
<b-form-input
id="password"
v-model="passwords.currentPassword"
:placeholder="placeholders.currentPassword"
type="password"
/>
在脚本中,我将文本设置如下
data() {
return {
placeholders: {
//currentPassword: "Enter your current password",
currentPassword: this.$t("changePassword.newPasswordPlaceholder"),
newPassword: "Enter your new password",
confirmPassword: "Confirm your new Password"
}
我尝试了这个解决方案,但我在该字段中得到的文本是:changePassword.newPasswordPlaceholder
我尝试将 i18n 作为组件调用,但失败了……有没有办法在模板(html)之外设置变量值?
解决方案
currentPassword: this.$t("changePassword.newPasswordPlaceholder")
此代码在本地化文件中查找当前语言。那里首先用 key 寻找 json 值changePassword
。如果找到,那么它将寻找密钥,newPasswordPlaceholder
然后如果找到它也将返回它的值。这些值必须在所有本地化文件中输入。您必须将这些行添加到 json 文件中,如下所示才能按需要工作:
//json file where all localisation key : value pairs stored
"changePassword": {
"newPasswordPlaceholder" : "text of password placeholder"
}
定义这些值后,您可以按照示例中的说明使用翻译。也不需要像在您的代码中那样从对象调用:placeholder="placeholders.currentPassword"
。您可以直接使用 i18n。
:placeholder="$t('changePassword.newPasswordPlaceholder')"
推荐阅读
- c++ - 什么时候在 C++ 中使用 exit() 与异常比较好?
- python - 如何从字典中的键值对跳转以创建循环列表
- python - 即使在简单的架构和大量数据中,我的 CNN 也会过拟合
- python - 为 python 文件设置一致的主目录
- python - 为什么我的 python 正则表达式模式不匹配整个字符串?
- django - 试图让电子邮件激活工作,但它失败了
- c++ - 在 Visual Studio 社区调试器中获取 C++ 静态变量的内存位置
- nginx - 在 AWS EKS 上使用持久卷附加 NGINX 配置文件
- javascript - 从主机名获取域扩展
- android - 使用合成函数访问视图时的 NPE