首页 > 解决方案 > 配置 i18next 以使用警告日志而不是默认信息级别

问题描述

目前我有很多日志,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'
  })

标签: javascriptreactjsi18next

解决方案


您可以禁用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);
})

基于此代码

其他选项是使用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)
    }
  })

基于此代码


推荐阅读