В настоящее время i18next-cli эффективно извлекает ключи перевода, которые представляют собой строковые литералы, передаваемые непосредственно в качестве аргументов функции t(). Однако он не может надежно обнаруживать и извлекать ключи, используемые косвенно через переменные в следующих шаблонах:
Код: Выделить всё
// Case 1: Key assigned to a variable, then the variable is passed to t()
const buttonKey = 'homepage_submit_button';
t(buttonKey);
// Case 2: Key is an object property, which is then passed to t()
const messages = {
greeting: 'welcome_message',
error: 'error_message'
};
t(messages.greeting);
// Case 3: Key is dynamically generated using template literals or string concatenation
const module = 'user';
const action = 'create';
t(`${module}_${action}_success`);
Это ограничение приводит к тому, что во время сканирования пропускаются ключи перевода, которые активно используются в коде. В результате эти ключи исключаются из создаваемых файлов перевода, и разработчикам приходится добавлять их вручную. Этот процесс подвержен ошибкам и неудобен.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... -variables