配置 i18next 以使用警告日志而不是默认信息级别

Ras*_*mon 2 javascript i18next reactjs

目前我有很多日志使得i18next控制台难以使用:

在此输入图像描述

我需要i18next使用警告级别而不是默认信息级别,以便能够过滤它们。

我正在检查文档,但我没有看到任何选项。我当前的配置是:

i18n
  .use(XHR)
  .use(LanguageDetector)
  .init({
    debug: true,
    lng: 'en',
    keySeparator: false,
    addMissing: true,
    interpolation: {
      escapeValue: false
    },

    resources: {
      en: {
        translations: translationEng
    },
    ns: ['translations'],
    defaultNS: 'translations'
  })
Run Code Online (Sandbox Code Playgroud)

fel*_*osh 6

您可以禁用debug: false,这将禁用默认的console.log东西。以及实例missingKey上的事件侦听器i18n

i18n
  .use(XHR)
  .use(LanguageDetector)
  .init({
    debug: false, // <-- disable default console.log
    lng: 'en',
    keySeparator: false,
    addMissing: true,
    interpolation: {
      escapeValue: false
    },

    resources: {
      en: {
        translations: translationEng
    },
    ns: ['translations'],
    defaultNS: 'translations'
  });

i18n.on('missingKey', (lng, namespace, key, fallbackValue) => {
   console.warn(lng, namespace, key, fallbackValue);
})
Run Code Online (Sandbox Code Playgroud)

基于此代码

其他选项是使用options.missingKeyHandler传递自定义处理程序来处理丢失的密钥。

i18n
  .use(XHR)
  .use(LanguageDetector)
  .init({
    debug: false, // disable this
    lng: 'en',
    keySeparator: false,
    addMissing: true,
    interpolation: {
      escapeValue: false
    },

    resources: {
      en: {
        translations: translationEng
    },
    ns: ['translations'],
    defaultNS: 'translations',
    saveMissing: true, // must be enabled
    missingKeyHandler: (lng, ns, key, fallbackValue) => {
       console.warn(lng, ns, key, fallbackValue)
    }
  })
Run Code Online (Sandbox Code Playgroud)

基于此代码