返回

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

概述

此版本延续了 gt-react 逐步摆脱 React context 的方向,并在 t 标签模板宏 的基础上进一步改进。derive() 现在可在 t 标签模板字面量中使用。此前,derive() 只能在 t() 函数调用中使用:

t("The {subject} is playing.", { subject: derive(getSubject(gender)) })

现在你可以直接将其写入模板字面量中:

t`The ${derive(getSubject(gender))} is playing.`

工作原理

derive() 会指示 CLI 工具分析函数所有可能的返回值,并为每个返回值创建单独的翻译条目。这样可以保留不同语言中的语法一致关系——例如,在西班牙语中,“男孩在玩耍。”和“女孩在玩耍。”需要使用不同的冠词(El niño vs La niña)。

示例

import { t } from "gt-react/browser";
import { derive } from "gt-react";

function getSubject(gender) {
  return gender === "male" ? "boy" : "girl";
}

function Component({ gender }) {
  return <p>{t`The ${derive(getSubject(gender))} is playing.`}</p>;
}

这会创建两个翻译条目:

  • "男孩在玩耍。"
  • "女孩在玩耍。"

相关链接