gt-react@10.15.0
概要
このリリースは、gt-reactのReactコンテキストからの移行と、t タグ付きテンプレートマクロを踏まえたものです。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 と 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>;
}これにより、翻訳エントリが 2 つ作成されます:
- "The boy is playing."
- "The girl is playing."