将 locale.json 消息映射到 javascript 中的对象

问题描述 投票:0回答:1

我一直在处理 i18n 和语言环境,在 vue 中,有一个函数 t() 接受一个参数 - 字符串,表示预计在应用程序中显示的字符串的键

//en.json { “关于”:“关于” }

然后在 template/html 中你会做类似 t("about") 的事情,我想知道你是否可以创建一个函数来读取这样的 en.json 并将其放入一个对象中,其中 key 将是 .json 键和值将是字符串的关键。这样你就可以将它公开在某个地方作为全局或我没有考虑过的东西,而不是 t("about") 你可以在模板中执行 t($locale.about) (我希望消除代码库中的硬编码字符串)

这只是一个想法,我想知道它是否可能以及实际上应该做或不做的事情

谢谢大家的回答

javascript typescript nuxt.js vuejs3
1个回答
0
投票

设计时并不是这样的。允许缺少翻译键,并且可以为

t()
的第二个参数提供后备。当您有不同语言的多个目录,并且某些键在某些目录中可能没有翻译时,这一点很重要。例如,这允许国际化库根据库配置回退到另一个语言环境。

也就是说,能够检测丢失的消息或未使用的密钥等仍然很好。这个问题通常可以通过构建过程中的其他工具来解决。请参阅 vue-cli-plugin-i18n

© www.soinside.com 2019 - 2024. All rights reserved.