Как использовать постпроцессор с i18next?

Из этой статьи я прочитал, что вы можете добавить функцию постобработки в i18next:

i18n.addPostProcessor("myProcessorsName", function(value, key, options) 
{
   return 'some post processed data based on translated value';
});

и добавьте его во время инициализации:

i18n.init({ postProcess: 'myProcessorsName' });

Но получаю ошибку addPostProcessor это не функция.

Итак, как я могу добавить и использовать функцию постобработки для i18next?


person Attaque    schedule 05.09.2019    source источник


Ответы (1)


Из документации я понял, что вы можете создать модуль постобработки и добавить его в экземпляр i18next с use().

В этом примере модуль постобработки сделает первую букву любой возвращаемой строки заглавной:

import i18next from "i18next";
import { initReactI18next } from "react-i18next";

(...)

const CapitalizeFirstLetter = (str) => {
  return str.length ? str.charAt(0).toUpperCase() + str.slice(1) : str
}

const initTranslations = () => {
    i18next
    .use({
      type: 'postProcessor',
      name: 'capitalize',
      process: function (value, key, options, translator) {
        return CapitalizeFirstLetter(value);
      }
    })
    .use(initReactI18next) // passes i18n down to react-i18next
    .init({
      postProcess: ["capitalize"]
    })
}
person Attaque    schedule 05.09.2019