vue 多语言 外挂 JSON文件?

需求: 需要将多语言JSON文件外挂, 翻译人员将翻译好的多语言文件替换对应文件 前端不需要在打包更新 即可看到效果

之前的处理方案, 之前多语言文件是 JS 格式 定义了一个全局变量 vue 多语言 外挂 JSON文件? 如 ZHJSON 然后在 index.html 中引入 vue 多语言 外挂 JSON文件? 然后i18n注册词条用的是全局变量 vue 多语言 外挂 JSON文件?。按照这种方案可以实现 替换掉public/lang 下的语言包即可实现 刷新页面看到词条变化 无需打包更新

现在多语言文件需要是 JSON 文件 求问 index.html 里怎么引入对应多语言JSON文件 既可实现需求??


回答:

可以尝试使用 Vue I18n延迟加载翻译 功能,将 json 文件放在 public 目录下然后动态 import() 即可。

const messages = await import("/public/locales/zh.json");

或者可以通过网络请求获取 json 文件

const response = await fetch("/public/locales/zh.json");

const messages = await response.json();

  • Vue I18n 9.x Lazy loading

  • Vue I18n 8.x 延迟加载翻译


回答:

题主是用的 i18n 吧?直接导入 json 就行了

import Vue from 'vue'

import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

const i18n = new VueI18n({

locale: 'zh',

messages: {

en: require('./locales/en.json'),

zh: require('./locales/zh.json')

}

})

new Vue({

i18n,

}).$mount('#app')


回答:

en: await (await fetch('/path/to/en.json')).json()


回答:

JSON 当作数据,动态加载就好了,甚至可以根据用户的个性化选项,或者浏览器默认语言来选择加载的语言资源(每种语言一个 JSON)。

以上是 vue 多语言 外挂 JSON文件? 的全部内容, 来源链接: utcz.com/p/934781.html

回到顶部