gt-react@10.15.0
概述
此版本延续了 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>;
}这会创建两个翻译条目:
- "男孩在玩耍。"
- "女孩在玩耍。"