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 と 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つの翻訳エントリが作成されます。
- "男の子が遊んでいる。"
- "女の子が遊んでいる。"