戻る

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

概要

このリリースは、gt-reactReact 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ñoLa 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つの翻訳エントリが作成されます。

  • "男の子が遊んでいる。"
  • "女の子が遊んでいる。"

リンク