返回

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

概述

此版本在 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>;
}

这会创建两个翻译条目:

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

相关链接