gt-react@10.15.0
概述
此版本在 gt-react 不再依赖 React 上下文 和 t tagged template 宏 的基础上进一步完善。derive() 现在可在 t 标签模板字面量 中使用。此前,derive() 只能在 t() 函数调用中使用:
t("The {subject} is playing.", { subject: derive(getSubject(gender)) })现在你可以直接将它写在模板字面量中:
t`The ${derive(getSubject(gender))} is playing.`工作原理
derive() 会让 CLI 工具分析某个函数所有可能的返回值,并为每个返回值创建单独的翻译条目。这样可以在不同语言中保持语法一致性——例如,在西班牙语中,“The boy is playing”和“The girl is playing”需要使用不同的冠词 (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>;
}这会创建两个翻译条目:
- "男孩在玩耍。"
- "女孩在玩耍。"