首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >react i18Next-如何在i18n初始化后添加后端?

react i18Next-如何在i18n初始化后添加后端?
EN

Stack Overflow用户
提问于 2021-01-11 20:25:02
回答 1查看 2.2K关注 0票数 0

我想让我的i18n延迟加载翻译文件,从文档中,似乎很简单--添加.use(backend)import backend from "i18next-http-backend"

唯一的问题是,我在我的提供中使用的i18n实例已经在我的组织的内部回购中定义为一个UI库(我必须使用它),它只公开了一种为您初始化i18n实例的方法--这没有为.use(backend)做任何准备,现在我不得不将它添加到代码中。

这是图书馆代码-

代码语言:javascript
运行
复制
...

export const getDefaultI18nextInstance = (resources) => {
  i18n
    .use(AlphaLanguageDetector)
    .use(initReactI18next)
    .init({
      fallbackLng: 'en',

      // have a common namespace used around the full app
      ns: [
        'translations',
        'common'
      ],
      nsMode: 'fallback',
      defaultNS: 'translations',

      // debug: (process.env.NODE_ENV && process.env.NODE_ENV === 'production') ? false : true,
      debug: true,

      interpolation: {
        escapeValue: false, // not needed for react!!
      },

      resources: resources || null,

      react: {
        wait: true
      }
    });
    Object.keys(translations).forEach(lang => {
      Object.keys(translations[lang]).forEach(namespace => {
        i18n.addResourceBundle(lang, namespace, translations[lang][namespace], true, true)
      })
    });
  return i18n;
}

export default {
  getDefaultI18nextInstance,
  translations,
  t
};
...

我尝试在我的<I18nextProvider i18n={i18n.getDefaultI18nextInstance().use(backend)}>文件中使用它,类似于这个index.js,但是我得到了错误

i18next::backendConnector:没有通过i18next.use添加后端。不会加载资源。

我在projectRoot/locales/{lang}/translation.json有我的地点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 11:08:27

您可以使用i18n.cloneInstance(options, callback)并将后端配置传递为options,它将合并您的ui库中的所有选项,并返回一个能够获取的i18next新实例。

代码语言:javascript
运行
复制
import HttpApi from 'i18next-http-backend';

const original = getDefaultI18nextInstance({});

export const i18n = original
  .cloneInstance({
    backend: {
      loadPath: '/locales/{{lng}}/{{ns}}.json',
    },
  })
  .use(HttpApi);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65674006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档