首页 > 解决方案 > 仅加载 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

标签: vue.jsinternationalization

解决方案


推荐阅读