コアマクロは、JavaScript 側で使う Lingui マクロです。
役割は大きく 2 つあります。
- その場で翻訳済み文字列を生成する
- 後で翻訳するためのメッセージ記述子を定義する
公式 Lingui では、これに当たるのが t、msg、defineMessage、plural、select、selectOrdinal です。
lingui-for では、これらの意味論を保ちながら、必要な箇所だけフレームワークの構文に合わせています。
<p>{
$t\`Hello \${name}\`
}</p>
msg / defineMessage
記述子を定義し、後で翻訳します
<script lang="ts">
let welcome = $derived(msg\`Welcome back, \${name}\`);
</script>
<p>{$t(welcome)}</p>
plural
数値に基づいて複数のカテゴリからテキストを選択します
<p>{
$plural(count, {
one: "# item",
other: "# items",
})
}</p>
select
トーンやステータスなどの名前付きケースでテキストを切り替えます
<p>{
$select(tone, {
formal: "Welcome",
casual: "Hi",
other: "Hello",
})
}</p>
selectOrdinal
1番目、2番目、3番目などの序数テキストを選択します
<p>{
$selectOrdinal(place, {
one: "#st",
two: "#nd",
few: "#rd",
other: "#th",
})
}</p>
次のような場合は、コアマクロから始めてください。
- 必要な結果が文字列または記述子である
- 埋め込みマークアップを含むリッチテキストを書かない
- できるだけ公式 Lingui Core に近い振る舞いを使いたい