コンテンツにスキップ

Plural

Plural は、コアマクロ plural に対応するコンポーネントマクロです。

同じ ICU 複数形ロジックを表しますが、マークアップ内でコンポーネントプロパティとして記述します。 周囲のファイルがすでにテンプレート中心で、関数呼び出しよりコンポーネント形式のほうが見通しやすい場合に便利です。

標準の ICU 複数形カテゴリ(zeroonetwofewmanyother)は、そのままプロパティ名として使います。 完全一致にはアンダースコア付きの数値を使います。たとえば _0="No items" は、value が 0 のときだけ完全一致し、カテゴリプロパティより優先されます。

フレームワークに依存しない Lingui の意味論については、公式の Plural リファレンス を参照してください。

ソース
<p>
  <Plural value={count} one="# file" other="# files" />
</p>
結果

3 files

ロケール
<script lang="ts">
import { Plural } from "lingui-for-svelte/macro";
let count = $state(3);
</script>
<Plural value={count} one="# file" other="# files" />

数値の前に _ を付けると、その値に完全一致します。 完全一致はカテゴリプロパティより優先されます。

<Plural value={count} _0="No files" one="# file" other="# files" />

関数形式では、数値キーそのままで表します。

<p>{$plural(count, { 0: "No files", one: "# file", other: "# files" })}</p>
  • すでにマークアップ中心で書いており、その場で複数形分岐を書きたい
  • plural(...) よりコンポーネント形式のほうが読みやすい
  • コアマクロと同じ複数形意味論を使いたい