vue.js - 仅加载 1 个翻译文件,而不是使用 vue-i18n 全部加载
问题描述
使用vue-i18n插件(有 2 个同名 :-/)为我的应用程序添加一些翻译。使用下面的代码,我将它们全部加载,并且我已经阅读了一些消息,这些消息对于多个大翻译文件来说并不聪明(有意义) 那么有没有办法只加载我需要的那个?
我确实使用了语言环境切换器,我确实需要一种方法来切换到正确的 json 文件
locales/
- en-US.json
- de-DE.json
- nl-NL.json
i18n.js
function loadLocalMessages () {
const locales = require.context('../locales', true, /[A-Za-z0-9-_,\s]+\.json$/i)
const messages = {}
locales.keys().forEach(key => {
const matched = key.match(/([A-Za-z0-9-_]+)\./i)
if (matched && matched.length > 1) {
const locale = matched[1]
messages[locale] = locales(key)
}
})
return messages;
}
const i18n = createI18n({
silentTranslationWarn: true,
locale: 'en-US',
fallbackLocale: 'en-US',
messages: loadLocalMessages(),
});
export default i18n
解决方案
推荐阅读
- scala - Scala 不是基于 Java 10 构建的
- python - 如何使用python在同一个工作簿中组合选定的工作表
- mysql - 如何使用位于其他服务器上的 wordpress 数据库
- ios - 如何抑制来自cli的对话框?
- postgresql - CONCAT函数在postgres 10中不起作用
- r - 使用已为 geom_violin 指定的 scale_y_continous 调整 y 轴范围
- url-redirection - 从 https www.domain.com 重定向到 https www.domain.co.uk
- angular - 是否可以在多个应用程序上共享 Angular 2+ 核心库?
- javascript - 如何在 NodeJs REST API 中从 mysql 获取特定数据
- c++ - 使用 par_unseq 时,我仍然可以依赖输出元素的顺序吗?