Назад

gt@2.13.0

Ernest McCarter avatarErnest McCarter
gtderivet-functiondx

Обзор

Функция t() теперь автоматически выполняет деривацию динамического контента — больше не нужно оборачивать переменные в derive(). Это поведение включено по умолчанию и работает из коробки с GT CLI.

Это очередной шаг в серии улучшений derive(). Сначала gt-react@10.15.0 добавил поддержку derive() для тегового шаблонного литерала t. Затем gt@2.12.0 расширил возможности derive(), чтобы он мог извлекать значения из объектов и массивов. Теперь gt@2.13.0 полностью устраняет необходимость вызывать derive() при использовании t().

До и после

Раньше для динамических значений в t() требовалось явно вызывать derive():

const noun = cond ? "boy" : "girl"
const result = t("The " + derive(noun))

Теперь просто используйте переменную:

const noun = cond ? "boy" : "girl"
const result = t("The " + noun)

CLI автоматически выполняет деривацию при разборе вызовов t() — он распознаёт переменные с конечным набором возможных строковых значений и выводит производные варианты в фоновом режиме.

Конфигурация

Автодеривация включена по умолчанию. Чтобы отключить эту функцию, установите autoDerive в false в файле gt.config.json:

{
  "files": {
    "gt": {
      "parsingFlags": {
        "autoDerive": false
      }
    }
  }
}

Примечание: Это относится только к функции t(). На макрос тегированного шаблона t это не влияет — он уже поддерживает деривацию через синтаксис шаблонных литералов, представленный в gt-react@10.15.0.

Ссылки