我一直在处理 i18n 和语言环境,在 vue 中,有一个函数 t() 接受一个参数 - 字符串,表示预计在应用程序中显示的字符串的键
//en.json { “关于”:“关于” }
然后在 template/html 中你会做类似 t("about") 的事情,我想知道你是否可以创建一个函数来读取这样的 en.json 并将其放入一个对象中,其中 key 将是 .json 键和值将是字符串的关键。这样你就可以将它公开在某个地方作为全局或我没有考虑过的东西,而不是 t("about") 你可以在模板中执行 t($locale.about) (我希望消除代码库中的硬编码字符串)
这只是一个想法,我想知道它是否可能以及实际上应该做或不做的事情
谢谢大家的回答
设计时并不是这样的。允许缺少翻译键,并且可以为
t()
的第二个参数提供后备。当您有不同语言的多个目录,并且某些键在某些目录中可能没有翻译时,这一点很重要。例如,这允许国际化库根据库配置回退到另一个语言环境。
也就是说,能够检测丢失的消息或未使用的密钥等仍然很好。这个问题通常可以通过构建过程中的其他工具来解决。请参阅 vue-cli-plugin-i18n。