获取i18next后退到'NO TRANSLATION'

时间:2017-01-17 23:05:24

标签: javascript translation i18next

如果没有找到该密钥的翻译,默认情况下i18next翻译库似乎会回退到翻译密钥,例如

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

如果没有找到该密钥的翻译,我宁愿回溯到一条与众不同的消息,这些消息很明显我们错过了翻译或错误输入了翻译密钥。最好在消息中提及密钥,例如

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

某种回退回调函数是理想的,因为我们也可以登录控制台/远程服务任何缺失的翻译。

如何使用i18next库实现这样的目标?

2 个答案:

答案 0 :(得分:2)

So it turns out i18next accepts a handler in the options when initialising that lets you set the value for missing keys.

i18n.init({
    ...

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

答案 1 :(得分:0)

根据official documentation saveMissing,<{1}}需要 才能工作。没有它我的代码工作正常。