获取 i18next 以回退到 'NO TRANSLATION'

Get i18next to fallback to 'NO TRANSLATION'

如果找不到翻译键,i18next 翻译库默认情况下似乎会回退到翻译键,例如

// No translation defined for CANCEL yet
i18next.t('CANCEL') // Returns 'CANCEL'

如果找不到密钥的翻译,我宁愿回退到一条独特的消息,使我们明显错过翻译或输入错误的翻译密钥。最好在消息中提及密钥,例如

i18next.t('CANCEL') // Returns 'No translation found for "CANCEL"'

某种回退回调函数是理想的,因为这样我们还可以记录到 console/remote 服务任何缺失的翻译。

如何使用 i18next 库实现类似的功能?

事实证明,i18next 在初始化时接受了选项中的处理程序,让您可以为丢失的键设置值。

i18n.init({
    ...

    saveMissing: true, // Must be set to true
    parseMissingKeyHandler: (key: string) => {
        return `No translation found for "${key}"`;
    }
})

根据 official documentation saveMissing 不是 parseMissingKeyHandler 工作所必需的。没有它我的代码工作正常。